2013-05-02 82 views
4

下面的查询会触发此错误:错误代码:1136列计数不匹配值计算

Error Code: 1136. Column count doesn't match value count at row 1.

为什么会出现这个错误?

SET @id_country = (SELECT id_country 
FROM prestashop147.ps_country 
WHERE iso_code = 'br'); 

SET @id_state = (SELECT id_state 
FROM ps_state 
WHERE iso_code = 'mg'); 

INSERT INTO ps_address(id_address, id_country, id_state, id_customer, id_manufacturer, id_supplier, alias, company, lastname, firstname, address1, address2, postcode, city, other, phone, phone_mobile, vat_number, dni, date_add, date_upd, active, deleted) 
VALUES (null, @id_country, @id_state, 2, 0, 0, 'Endereço', 'sobrenome', 'nome', 'rua canada, 71', 'complemento', 'cep', 'cidade', null, 'telefone', 'celular', null, null, null, null, 1, 0); 
+3

你有23栏和22个值 – Sharlike 2013-05-02 14:02:27

+2

错误消息说这一切 – 2013-05-02 14:03:01

回答

17

你必须在INSERT 23列,但只供应22个VALUES

4

有着悠久的列清单这样,你可能与INSERT INTO ... SET风味INSERT更好:

INSERT INTO ps_address SET 
    id_address = null, 
    id_country = @id_country, 
    id_state = @id_state, 
    id_customer = 2, 
    ... and so on 

请注意,这是一个MySQL扩展,而不是SQL标准。

+1

我不知道它。我认为这是必需的。 – 2013-05-02 14:11:59

相关问题