语法问题?插入到



我正在MySQL中创建一个在线商店/数据库,我对这个系统相当陌生。请告诉我这个说法有什么问题:

CREATE TABLE IF NOT EXISTS Customers (
ID INT(15) NOT NULL AUTO_INCREMENT,  -- Connects to table 'Orders' andOrderUserID
Email VARCHAR(100) NOT NULL,
PersonName VARCHAR(100) NOT NULL,
City VARCHAR(90) NOT NULL,
Zip INT(10),
CustomerState VARCHAR(50),
Address VARCHAR(200) NOT NULL,
Country VARCHAR(20),
Phone INT(50),
PRIMARY KEY (ID)
);

INSERT INTO Customers (ID, Email, PersonName, City, Zip, CustomerState, Address, Country, Phone) VALUES
(1, '1@gmail.com', 'Fred', 'Brisbane', 6543, 'QLD', '20 Not telling   avenue', 'Australia', 932363626),
(2, '2@gmail.com', 'Mark', 'Perth', 3212, 'WA', ' 122 cralic road', 'Australia', 93223463221),
(3, '3@gmail.com', 'Leo', 'Melbourne', 2342, 'VIC', '90 normanly drive', 'Australia', 932645321),
(4, '4@gmail.com', 'Nick', 'Perth', 4294, 'WA', '44 happylane drive', 'Australia', 932222565621),
(5, '5@gmail.com', 'Mary', 'Perth', 6383, 'WA', '3 iverno crescent', 'Australia', 93365543321),
(6, '6@gmail.com', 'Julie', 'Perth', 9563, 'WA', '100 richmane lane', 'Australia', 9323456421),
(7, '7@gmail.com', 'Cynthia', 'Hobart', 3456, 'TAS', '12 trump avenue', 'Australia', 9322364641),
(8, '8@gmail.com', 'Mike', 'Albany', 7544, 'WA', '23 mapatazzie road', 'Australia', 9322236421),
(9, '9@gmail.com', 'Brett', 'Adelaide', 8953, 'SA', '983 chindes lane', 'Australia', 9322234651),
(10, '10@gmail.com', 'Paul', 'Sydney', 7853, 'VIC', '78 yives road', 'Australia', 932223463621),

1.)始终发布您在寻求帮助时遇到的错误

2.)您在最后一行留下了逗号,

3.)int(50)不会做你认为它做的事情。这并不意味着有 50 位数字的数字。 int表示数据类型,它将使用 4 字节。 50 ,在您的情况下,表示显示长度。不是存储长度int为 4 个字节。它最多只能显示 11 位数字(包括减号)。因此,您的int(50)不会使其长度为 50 位,它将保持在最大值 (2^32 - 1) = 4294967295

让您的Phone成为varchar

更新最后一行和以下行:

(10, '10@gmail.com', 'Paul', 'Sydney', 7853, 'VIC', '78 yives road', 'Australia', 932223463621);

添加分号

解决方案:

问题是,您提到电话字段为整数并给出93223463221这样的值。

整数值大于 2147483647,因此出现错误。

要解决,

alter table Customers modify column Phone varchar(50);

使用上述查询修改作为 varchar 字段提交的电话(整数)。

然后尝试插入值。

最新更新