SQL 无法识别数据类型 SERIAL
SQL cannot identify datatype SERIAL
提前致谢,
我不明白为什么不能将 SERIAL 识别为数据类型。
代码真的很简单。
我还有一个问题:
由于 SERIAL 不是真正的类型,我是否必须在某处定义它?
CREATE TABLE flights (
id SERIAL PRIMARY KEY,
origin VARCHAR NOT NULL,
destination VARCHAR NOT NULL,
duration INTEGER NOT NULL,
);
看来你需要多研究一点SQL关于数据类型的服务器文档:https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15
SERIAL 在 PostgreSQL 中转换为 INT IDENTITY
在 SQL 服务器上。
也就是说,第二列 origin
被声明为没有长度的 VARCHAR。我不确定它会默认为 1 个还是 30 个位置。无论如何,我建议不要使用没有明确长度的 VARCHAR...
您的 table 定义应如下所示:
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 服务器中,从不 使用 char()
或没有长度的相关类型。默认长度因上下文而异,这方面的错误很难调试。
提前致谢,
我不明白为什么不能将 SERIAL 识别为数据类型。
代码真的很简单。
我还有一个问题:
由于 SERIAL 不是真正的类型,我是否必须在某处定义它?
CREATE TABLE flights (
id SERIAL PRIMARY KEY,
origin VARCHAR NOT NULL,
destination VARCHAR NOT NULL,
duration INTEGER NOT NULL,
);
看来你需要多研究一点SQL关于数据类型的服务器文档:https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-types-transact-sql?view=sql-server-ver15
SERIAL 在 PostgreSQL 中转换为 INT IDENTITY
在 SQL 服务器上。
也就是说,第二列 origin
被声明为没有长度的 VARCHAR。我不确定它会默认为 1 个还是 30 个位置。无论如何,我建议不要使用没有明确长度的 VARCHAR...
您的 table 定义应如下所示:
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 服务器中,从不 使用 char()
或没有长度的相关类型。默认长度因上下文而异,这方面的错误很难调试。