通过psql和puTTY连接到Postgres时自动增量出错
我在油灰中发现了这个错误。不知道为什么,在我看来是对的通过psql和puTTY连接到Postgres时自动增量出错,sql,postgresql,auto-increment,identity,putty,Sql,Postgresql,Auto Increment,Identity,Putty,我在油灰中发现了这个错误。不知道为什么,在我看来是对的 psql:pierre.sql:10: ERROR: syntax error at or near "AUTO_INCREMENT" LINE 2: c_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY, ^ psql:pierre.sql:18: ERROR: syntax error at or near "AUTO_I
psql:pierre.sql:10: ERROR: syntax error at or near "AUTO_INCREMENT"
LINE 2: c_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
^
psql:pierre.sql:18: ERROR: syntax error at or near "AUTO_INCREMENT"
LINE 2: r_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
--DROP TABLE customer, reservation;
CREATE TABLE customer(
c_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
c_ref VARCHAR(30) NOT NULL,
f_name VARCHAR(30) NOT NULL,
l_name VARCHAR(30) NOT NULL,
address VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL,
phone VARCHAR(11) NOT NULL
);
CREATE TABLE reservation(
r_id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
c_id VARCHAR(30) NOT NULL REFERENCES customer(c_id),
book_date DATE NOT NULL CHECK (book_date <= now()),
s_time DOUBLE NOT NULL,
e_time DOUBLE NOT NULL,
amount INTEGER NOT NULL
);
psql:pierre.sql:10:ERROR:AUTO_INCREMENT处或附近的语法错误
第2行:c_id整数非空自动_递增主键,
^
psql:pierre.sql:18:ERROR:AUTO_INCREMENT处或附近的语法错误
第2行:r\u id整数非空自动增量主键,
--投递台客户,预订;
创建表客户(
c_id整数非空自动增量主键,
c_ref VARCHAR(30)不为空,
f_name VARCHAR(30)不为空,
l_name VARCHAR(30)不为空,
地址VARCHAR(100)不为空,
电子邮件VARCHAR(100)不为空,
电话VARCHAR(11)不为空
);
创建表预订(
r_id整数非空自动增量主键,
c_id VARCHAR(30)非空引用客户(c_id),
book_date NOT NULL检查(book_date看起来像是MySQL使用的东西
但是,在这里,您似乎正在使用PostgreSQL
根据本手册的章节,postgresql的自动增量的等价物是串行
或大串行
引用该页:
数据类型serial
和bigserial
不是真正的类型,只是
用于设置唯一标识符列的符号方便性
(类似于其他一些数据库支持的AUTO_INCREMENT
属性)
看起来你会用MySQL
但是,在这里,您似乎正在使用PostgreSQL
根据本手册的章节,postgresql的自动增量的等价物是串行
或大串行
引用该页:
数据类型serial
和bigserial
不是真正的类型,只是
用于设置唯一标识符列的符号方便性
(类似于其他一些数据库支持的AUTO_INCREMENT
属性)
<强> P> 10 < /强>或以后考虑<强>代码>标识< /代码> <强>列:
CREATE TABLE customer(
c_id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
...
(主键
也会自动使其不为空。)
详情:
<强> P>第9.6版>强> >或老>考虑<代码>系列< /代码>
在PG 10或更高版本中工作,但是<代码>标识< /代码>通常是优越的。 < P>在<强> PASGRES< 10 >强>或以后考虑“<强>代码>标识< /代码> <强>列:
CREATE TABLE customer(
c_id INTEGER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
...
(主键
也会自动使其不为空。)
详情:
<强> P>第9.6版>强> >或老>考虑<代码>系列< /代码>
也适用于第10页或更高版本,但
标识
通常更为优越