列名或提供的值数与表定义不匹配。

时间:2014-11-28 23:50:50

标签: mysql sql

我正在用visual编写程序来使用数据库来制作PC构建器类型的程序。当我尝试将数据插入PROCESSORS表时,出现以下错误:

  

ERROR:
      列名或提供的值数与表定义不匹配。

由于我的其他插页工作正常,我不知道这个插件有什么问题。

DROP TABLE PROCESSORS
DROP TABLE MOTHERBOARDS
DROP TABLE SOCKET_TYPE
DROP TABLE STORE;

CREATE TABLE PROCESSORS (
PRODCUT_ID      VARCHAR(20) PRIMARY KEY,
BRAND           VARCHAR(6) NOT NULL,
CORES           INTEGER NOT NULL,
SPEED           DECIMAL NOT NULL,
INTEGRATED_GPU  VARCHAR(40) NOT NULL);

CREATE TABLE STORE(
STORE_ID        VARCHAR(20) PRIMARY KEY,
PRODUCT_ID      VARCHAR(20) NOT NULL,
PRODUCT_NAME    VARCHAR(50) NOT NULL,
STORE           VARCHAR(30) NOT NULL,
PRICE           INTEGER     NOT NULL);

/*Newegg Product I7-4470*/
INSERT INTO PROCESSORS VALUES('BX80646I74770','Intel',4,3.4,'None');
INSERT INTO STORE VALUES('N82E16819116900','BX80646I74770','Intel Core I7-4470 Haswell','Newegg',309.99); 

1 个答案:

答案 0 :(得分:3)

您似乎在STORE Price列中输入了一个十进制的小数:)

编辑:注意到该列的DECIMAL类型缺少强制语法,例如: DECIMAL(2,2)。根据{{​​3}},默认情况下,未提供的是DECIMAL(10,0),它基本上是10位整数。为DECIMAL数据类型提供精确的参数,以允许添加带小数位的正确数字,这将解决INSERT问题。