![](/img/trans.png)
[英]Error Code: 1136. Column count doesn't match value count at row 1 in a procedure which will add data in 3 tables?
[英]Trying to fill data of table from another table using a procedure, Error Code: 1136. Column count doesn't match value count at row 1 keeps popping up
CREATE TABLE temp_t (
shipper_id integer,
shipper_name varchar(100),
shipper_contact_details varchar(30),
product_id integer,
vehicle_maker varchar(100),
vehicle_model varchar(100),
vehicle_color varchar(100),
vehicle_model_year integer,
vehicle_price decimal(7,2),
quantity integer,
discount decimal (2,2),
customer_id varchar(30),
customer_name varchar(100),
gender varchar(100),
job_title varchar(100),
phone_number varchar(100),
email_address varchar(100),
city varchar(100),
country varchar(100),
state varchar(100),
customer_address varchar(100),
order_date varchar(100),
order_id integer,
ship_date varchar(100),
ship_mode varchar(100),
shipping varchar (100),
postal_code integer,
credit_card_type varchar (100),
credit_card_number varchar(100),
customer_feedback varchar(100),
quarter_number integer,
PRIMARY KEY (order_id)
);
create table vehicles_t (
vehicle_maker varchar(20),
vehicle_model varchar(20),
vehicle_color varchar(15),
vehicle_model_year integer,
vehicle_price decimal(7,2),
quantity integer,
quarter_number integer,
PRIMARY KEY (vehicle_maker)
);
创建我的两个表来填充
DROP PROCEDURE IF EXISTS vehicles_p;
-- Syntax to create a stored procedure-
DELIMITER $$
CREATE PROCEDURE vehicles_p()
BEGIN
INSERT INTO vehicles_t(
vehicle_maker,
vehicle_model,
vehicle_color,
vehicle_model_year,
vehicle_price,
quantity,
quarter_number
) SELECT * FROM temp_t;
END;
创建一个过程,以便我可以使用 temp_t 表作为基础自动填充其他表。
TRUNCATE temp_t;
LOAD DATA LOCAL INFILE "/Users/***/Downloads/new_wheels_sales_qtr_1.csv" -- change this location to load another week
INTO TABLE temp_t
FIELDS TERMINATED by ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;'
调用车辆_p();
用来自 csv 的值填充 temp_t 表,以便该过程可以工作,然后我调用该过程。 这是发生错误的地方。
错误代码:1136。列计数与第 1 行的值计数不匹配
您有 sql 代码,它创建一个带有一组特定字段的表 temp_t。
您创建(但不执行)一个过程。
然后运行将 CSV 填充到 temp_t 中的 sql 代码(可能带有匹配字段列表)。
然后,您运行预期从 temp_t 表中获取字段并将它们填充到(以前未提及和未描述的)vehicles_t 表中的过程。
系统抱怨(此时)您的字段计数错误,无法运行 INSERT INTO sql 代码。
这是因为您在插入命令中提取“*”(包括 temp_t 中的所有字段),而不是必须与 INSERT INTO sql 代码中的字段匹配的字段列表。
我不能说它会在那个时候成功,因为我还没有看到vehicles_t的结构。 但如果这些字段匹配(字段计数和数据类型),你应该很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.