【问题标题】:I am creating a table in pgweb Heroku, and get this error "ERROR: pq: syntax error at or near "(""我在 pgweb Heroku 中创建一个表,并收到此错误“错误:pq:在“(”)或附近的语法错误
【发布时间】:2020-11-26 21:49:49
【问题描述】:

这是我的确切查询

CREATE Table Publisher 
(Publisher_Id     Int primary key not null,
Name          varchar(20) not null,  
Address       varchar(50) not null,
Phone         Int(10),
Isbn          varchar(13) references books (Isbn) not null
)

任何帮助将不胜感激。

【问题讨论】:

  • Int(10) 应该是 int as documented in the manual
  • 电话号码不是整数。你不用他们做算术。 char(10) 更有意义。
  • @HoneyboyWilson don't use char
  • 是的,我听说过。是否已弃用?

标签: sql postgresql create-table


【解决方案1】:

数据类型int 没有长度。所以:

create table publisher (
    publisher_id  int primary key,
    name          varchar(20) not null,  
    address       varchar(50) not null,
    phone         int,
    isbn          varchar(13) references books (isbn) not null
);

注意事项:

  • not null 在主键列上是冗余的

  • int 似乎不是电话号码的好选择;您通常需要存储前导 0s,或者允许特殊字符,例如 +() - int 不能这样做。字符串数据类型可能是更好的选择

【讨论】:

  • 非常感谢!现在我可以继续我的项目了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 2015-07-24
  • 2017-02-20
  • 1970-01-01
  • 2017-03-16
相关资源
最近更新 更多