如何解决SQL无法识别数据类型SERIAL
先谢谢了,
我不明白为什么SERIAL无法识别为数据类型。
代码真的很简单。
我也有一个问题:
由于SERIAL不是真正的类型,我是否必须在某个地方定义它?
CREATE TABLE flights (
id SERIAL PRIMARY KEY,origin VARCHAR NOT NULL,destination VARCHAR NOT NULL,duration INTEGER NOT NULL,);
解决方法
似乎您必须探索有关数据类型的更多SQL Server文档:https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15
在PostgreSQL中,SERIAL转换为SQL Server上的INT IDENTITY
。
也就是说,第二列origin
被声明为无长度的VARCHAR。我不确定它是否默认为1或30个位置。无论如何,我建议不要使用没有明确长度的VARCHAR ...
您的表定义应如下所示:
CREATE TABLE flights (
id INT IDENTITY(1,1) PRIMARY KEY,origin VARCHAR(255) NOT NULL,destination VARCHAR(255) NOT NULL,duration INTEGER NOT NULL,);
如评论中所述,serial
来自Postgres。即使在该数据库中,它的使用现在也已过时,已被generated always as identity
取代。
我不知道origin
和destination
的长度是多少。但是。 。 。在SQL Server中,从不不要使用char()
或没有长度的相关类型。默认长度因上下文而异,该区域中的错误很难调试。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。