-1

我有一个名为 quote details 的表,其中包含一些列

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

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

我怎么了???

4

2 回答 2

1

它是一个位字段,而不是字符串,因此请从“0”中删除撇号。您可以对 Fk_Client_Supplie_Id 和其他整数字段执行相同的操作。

一个位域,例如bit(3)可以分配一个二进制值,使用该符号b'101',但如果分配 0,则该符号是不必要的。

于 2013-06-29T14:42:51.463 回答
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改用。

于 2013-06-29T14:43:07.067 回答