可以上传 MySQL 个数据库表,但不能添加值
Can Upload MySQL Database Tables, But Can't Add Values
我可以在 phpMyAdmin 中创建数据库。当我只添加 tables 时,会创建一个数据库。现在,我正在尝试将值添加到 Purchase
table 中。我不断收到 Duplicate entry '1' for key 'PRIMARY'
或语法错误的错误。
这是我到目前为止尝试过的方法:
- 删除 P_ORDERNO 上的
PRIMARY KEY
和 auto increment
,然后尝试添加值
- 只添加一个值的一行
- 仅添加包含主键和另一个值的一行
我通过添加和减去 values/data 定义进行的测试没有显示任何可能的错误。这是原始 table 和我尝试输入的原始值:
CREATE TABLE IF NOT EXISTS `Purchase` (
`P_ORDERNO` int(5) NOT NULL auto_increment PRIMARY KEY,
`P_ORDER_DATE` timestamp NULL,
`P_ORDER_AMT` int NOT NULL,
`SUPPLY_CODE` int(5) NOT NULL,
`SUPPLY_DESC` varchar(50) NULL,
`SUPPLY QTY` int(5) NOT NULL
);
INSERT INTO `Purchase` (`P_ORDERNO`, `P_ORDER_DATE`, `P_ORDER_AMT`, `SUPPLY_CODE`, `SUPPLY_DESC`, `SUPPLY_QTY`) VALUES
(1, 2015-08-01 08:15:00, 30, 999, 'Hard drive', 300),
(2, 2015-08-02 08:15:00, 45, 999, 'Mouse', 310),
(3, 2015-08-03 08:15:00, 99, 784, 'Keyboard', 543);
对于我的语法错误或尝试将值添加到数据库中的任何反馈,我将不胜感激 table。
日期时间文字需要像这样用引号引起来:'2015-08-01 08:15:00'
并且您在 table def 中的列名也有误:(SUPPLY QTY
而不是 SUPPLY_QTY
).
这个有效:
CREATE TABLE IF NOT EXISTS `Purchase` (
`P_ORDERNO` int(5) NOT NULL auto_increment PRIMARY KEY,
`P_ORDER_DATE` timestamp NULL,
`P_ORDER_AMT` int NOT NULL,
`SUPPLY_CODE` int(5) NOT NULL,
`SUPPLY_DESC` varchar(50) NULL,
`SUPPLY_QTY` int(5) NOT NULL
);
INSERT INTO `Purchase` (`P_ORDERNO`, `P_ORDER_DATE`, `P_ORDER_AMT`, `SUPPLY_CODE`, `SUPPLY_DESC`, `SUPPLY_QTY`) VALUES
(1, '2015-08-01 08:15:00', 30, 999, 'Hard drive', 300),
(2, '2015-08-02 08:15:00', 45, 999, 'Mouse', 310),
(3, '2015-08-03 08:15:00', 99, 784, 'Keyboard', 543);
在给定样本 table def 和数据的情况下,唯一可能出现重复错误的列是主键,并且由于样本数据没有任何重复项,可能还有其他原因,或者您没有显示导致问题的实际数据,在这种情况下很难判断可能是什么问题。
我可以在 phpMyAdmin 中创建数据库。当我只添加 tables 时,会创建一个数据库。现在,我正在尝试将值添加到 Purchase
table 中。我不断收到 Duplicate entry '1' for key 'PRIMARY'
或语法错误的错误。
这是我到目前为止尝试过的方法:
- 删除 P_ORDERNO 上的
PRIMARY KEY
和auto increment
,然后尝试添加值 - 只添加一个值的一行
- 仅添加包含主键和另一个值的一行
我通过添加和减去 values/data 定义进行的测试没有显示任何可能的错误。这是原始 table 和我尝试输入的原始值:
CREATE TABLE IF NOT EXISTS `Purchase` (
`P_ORDERNO` int(5) NOT NULL auto_increment PRIMARY KEY,
`P_ORDER_DATE` timestamp NULL,
`P_ORDER_AMT` int NOT NULL,
`SUPPLY_CODE` int(5) NOT NULL,
`SUPPLY_DESC` varchar(50) NULL,
`SUPPLY QTY` int(5) NOT NULL
);
INSERT INTO `Purchase` (`P_ORDERNO`, `P_ORDER_DATE`, `P_ORDER_AMT`, `SUPPLY_CODE`, `SUPPLY_DESC`, `SUPPLY_QTY`) VALUES
(1, 2015-08-01 08:15:00, 30, 999, 'Hard drive', 300),
(2, 2015-08-02 08:15:00, 45, 999, 'Mouse', 310),
(3, 2015-08-03 08:15:00, 99, 784, 'Keyboard', 543);
对于我的语法错误或尝试将值添加到数据库中的任何反馈,我将不胜感激 table。
日期时间文字需要像这样用引号引起来:'2015-08-01 08:15:00'
并且您在 table def 中的列名也有误:(SUPPLY QTY
而不是 SUPPLY_QTY
).
这个有效:
CREATE TABLE IF NOT EXISTS `Purchase` (
`P_ORDERNO` int(5) NOT NULL auto_increment PRIMARY KEY,
`P_ORDER_DATE` timestamp NULL,
`P_ORDER_AMT` int NOT NULL,
`SUPPLY_CODE` int(5) NOT NULL,
`SUPPLY_DESC` varchar(50) NULL,
`SUPPLY_QTY` int(5) NOT NULL
);
INSERT INTO `Purchase` (`P_ORDERNO`, `P_ORDER_DATE`, `P_ORDER_AMT`, `SUPPLY_CODE`, `SUPPLY_DESC`, `SUPPLY_QTY`) VALUES
(1, '2015-08-01 08:15:00', 30, 999, 'Hard drive', 300),
(2, '2015-08-02 08:15:00', 45, 999, 'Mouse', 310),
(3, '2015-08-03 08:15:00', 99, 784, 'Keyboard', 543);
在给定样本 table def 和数据的情况下,唯一可能出现重复错误的列是主键,并且由于样本数据没有任何重复项,可能还有其他原因,或者您没有显示导致问题的实际数据,在这种情况下很难判断可能是什么问题。