AUTO_INCREMENT属性とSERIAL型
AUTO_INCREMENT属性はMySQL用なので、PostgreSQLでは使用できません。
PostgreSQLでは、SERIAL型を使います。
MySQLの場合
CREATE TABLE tasks (
id INT(10) NOT NULL AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
PRIMARY KEY (id)
);
PostgreSQLの場合
CREATE TABLE tasks (
id SERIAL NOT NULL,
name VARCHAR(255) NOT NULL,
created_at TIMESTAMP,
updated_at TIMESTAMP,
PRIMARY KEY (id)
);
メモ
- MySQLではAUTO_INCREMENT属性を、PostgreSQLではSERIAL型を使う
- SERIAL型は
1
から2,147,483,647
の値を取り扱う - なお、PostgreSQLでは
int(10)
のように、INT型に桁数の指定はできない - PostgreSQLのINT型は
-2,147,483,648
から2,147,483,647
の整数を取り扱う