【发布时间】:2022-01-25 13:02:23
【问题描述】:
我创建了一个表并且 Identity_no 是唯一的,但是当我尝试添加一个带有 8 个数字的整数值时出现错误。可能我收到此错误是因为我确定 Identity_no 是唯一的。我该如何解决这个问题 下面是创建表的代码:
CREATE TABLE Members(
Member_id INTEGER PRIMARY KEY AUTO_INCREMENT NOT NULL,
Identity_no INTEGER NOT NULL UNIQUE,
Member_Name varchar(80) NOT NULL,
Member_Surname varchar(80) NOT NULL,
Member_Phone CHAR(11),
MemberCityID INTEGER NOT NULL,
FOREIGN KEY(MemberCityID) REFERENCES Cities(City_id));
添加数据的代码如下:
INSERT INTO Members
(Member_id,Identity_no,Member_Name,Member_Surname,Member_Phone,MemberCityID)
VALUES
(1,89768434566,"John","W","05379621522",78);
【问题讨论】:
-
2147483647 < 89768434566 -
INTEGER列(已签名)的最大编号为2,147,483,647,但您正在尝试插入更大的编号89,768,434,566。 -
感谢您的回答,但在您建议查看的链接中,如果我将 varchar 用于唯一值,我将不胜感激。如果您回答这个问题,我将不胜感激。 @Progman
-
@stck_n 问题不在于
UNIQUE关键字。您要插入的数字对于INTEGER列来说太大了。根据您要执行的操作,您必须使用不同的值或不同的列类型。
标签: mysql