数据错误地插入表中

时间:2013-06-29 14:38:53

标签: mysql

我有一个名为引用详情的表格,其中包含一些列

Field Name           |   Type
------------------------
Quotati_Id           |  bigint(20)
Fk_Rfq_Id            |  bigint(20)
Quotati_No           |  varchar(30)
Parent_Quotati_Id    |  bigint(20)
Fk_Client_Supplie_Id |  int(11)
Is_Client_Supplie    |  bit(1)

我想插入数据。插入查询在qiven下面

INSERT INTO quotationdetails (
Fk_Rfq_Id, 
Quotati_No,
Parent_Quotati_Id,Fk_Client_Supplie_Id, 
Is_Client_Supplie
) VALUES (
'15847',
(SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA='qtn' AND 
TABLE_NAME='quotationdetails'), 
'15640', '1', 
'0')

一切正常,但只有一个问题是错误地插入名为 Is_Client_Supplie 的列。即在 Is_Client_Supplie 列中插入 1 而非 0

我错了???

2 个答案:

答案 0 :(得分:1)

这是一个位字段,而不是字符串,所以从'0'删除撇号。您可以对Fk_Client_Supplie_Id和其他整数字段执行相同的操作。

bit(3)(例如b'101')可以使用符号{{1}}分配二进制值,但如果分配0则不需要此符号。

答案 1 :(得分:0)

使用

INSERT INTO quotationdetails (
Fk_Rfq_Id, 
Quotati_No,
Parent_Quotati_Id,Fk_Client_Supplie_Id, 
Is_Client_Supplie
) VALUES (
'15847',
(SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA='qtn' AND 
TABLE_NAME='quotationdetails'), 
'15640', '1', 
0)

无需'0',请改用0