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



我能够在phpMyAdmin创建一个数据库。当我只添加表时,就创建了数据库。现在,我正在尝试向Purchase表中添加值。我一直得到错误,要么是Duplicate entry '1' for key 'PRIMARY',要么是语法错误。

以下是我到目前为止所做的尝试:

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

我通过添加和减去值/数据定义的测试没有显示任何可能的错误。以下是我尝试输入的原始值的原始表:

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);

我将感谢任何反馈,什么可能是错误在我的语法或在我的尝试添加值到数据库表。

日期时间字量需要像这样用引号括起来:'2015-08-01 08:15:00',并且您在表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);

示例SQl Fiddle

唯一的列,你可以得到一个重复的错误上给定的样本表def和数据是主键,作为样本数据没有任何重复,也许有别的事情发生,或者你没有显示实际的数据导致的问题,在这种情况下,很难告诉什么可能是问题。

相关内容

最新更新