通过 psql 和 puTTY 连接到 Postgres 时出现 auto_increment 错误
我在 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_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
);
有什么想法吗?
I'm getting this error in puTTY. Not sure why, looks right to me ...
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
);
Any ideas why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
auto_increment
看起来就像你在 MySQL 中使用的东西一样。但是,在这里,您似乎正在使用 PostgreSQL。
根据数据类型
serial
部分,postgresql 相当于
auto_increment
的是serial
或bigserial
。引用该页面:
auto_increment
looks like something you'd use with MySQL.But, here, it seems you are using PostgreSQL.
According to the datatype
serial
section of the manual, postgresql's equivalent ofauto_increment
isserial
orbigserial
.Quoting that page :
在 Postgres 10 或更高版本中,考虑
IDENTITY
列:(PRIMARY KEY
也使其NOT NULL< /code> 自动。)
详细信息:
在 Postgres 9.6 或更早版本中,考虑像 Pascal 这样的
序列
已经建议了。也适用于第 10 页或更高版本,但
IDENTITY
通常更优越。In Postgres 10 or later consider an
IDENTITY
column:(
PRIMARY KEY
also makes itNOT NULL
automatically.)Details:
In Postgres 9.6 or older consider a
serial
like Pascal already suggested.Works in pg 10 or later, too, but
IDENTITY
is generally superior.