2013-06-29 77 views
-1

我有一些列数据被错误地插入到表

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) 

表命名的报价细节,我想插入数据。插入查询如下

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

一切qiven是工作正常,但只有一个问题命名为Is_Client_Supplie列被错误地插入。即被插入,而不是在列Is_Client_Supplie

请告诉我我错了???

回答

1

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

A bit fieldbit(3)可以分配一个二进制值使用符号b'101'但如果分配0这个表示法是不必要的。

+0

得益于它的作品。哦,这撇号杀了我2个小时.... –

+0

您也可以使用'b'0''表示与(二进制)值位字段。 –

+0

感谢@JoachimIsaksson –

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代替。

+0

感谢....它的作品 –