可以上传 MySQL 个数据库表,但不能添加值

Can Upload MySQL Database Tables, But Can't Add Values

我可以在 phpMyAdmin 中创建数据库。当我只添加 tables 时,会创建一个数据库。现在,我正在尝试将值添加到 Purchase table 中。我不断收到 Duplicate entry '1' for key 'PRIMARY' 或语法错误的错误。

这是我到目前为止尝试过的方法:

  1. 删除 P_ORDERNO 上的 PRIMARY KEYauto increment,然后尝试添加值
  2. 只添加一个值的一行
  3. 仅添加包含主键和另一个值的一行

我通过添加和减去 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);

Sample SQl Fiddle

在给定样本 table def 和数据的情况下,唯一可能出现重复错误的列是主键,并且由于样本数据没有任何重复项,可能还有其他原因,或者您没有显示导致问题的实际数据,在这种情况下很难判断可能是什么问题。