从 table 到 select 列的存储过程并插入到 mysql 中的多个 table
Stored procedure to select column from table and insert to multiple table in mysql
我想 select 来自 basic2
的值并使用存储过程插入 basic3
和 basic4
。
这些是 table 定义:
create table basic2(
id int AUTO_INCREMENT,
name varchar(50),
address varchar(50),
PRIMARY KEY (id)
);
create table basic3(
id int AUTO_INCREMENT,
name varchar(50),
address varchar(50),
PRIMARY KEY (id)
);
create table basic4(
id int AUTO_INCREMENT,
name varchar(50),
address varchar(50),
PRIMARY KEY (id)
);
这是 new_person
存储过程
drop procedure if exists new_person;
DELIMITER //
CREATE PROCEDURE new_person
select (id, name,address)
from basic2;
BEGIN
START TRANSACTION;
INSERT INTO basic3 (id,name,address)
VALUES(LAST_INSERT_ID(),bname,baddress);
INSERT INTO basic4 (id,name,address)
VALUES(LAST_INSERT_ID(),bname,baddress);
COMMIT;
END//
DELIMITER;
我们可以通过两种方式做到这一点,一种是使用光标,另一种是使用 SELECT 并插入我的东西 SELECT 更好
喜欢这个
INSERT INTO basic3(名称,地址)
SELECT 名称,地址来自 basic2;
我想 select 来自 basic2
的值并使用存储过程插入 basic3
和 basic4
。
这些是 table 定义:
create table basic2(
id int AUTO_INCREMENT,
name varchar(50),
address varchar(50),
PRIMARY KEY (id)
);
create table basic3(
id int AUTO_INCREMENT,
name varchar(50),
address varchar(50),
PRIMARY KEY (id)
);
create table basic4(
id int AUTO_INCREMENT,
name varchar(50),
address varchar(50),
PRIMARY KEY (id)
);
这是 new_person
存储过程
drop procedure if exists new_person;
DELIMITER //
CREATE PROCEDURE new_person
select (id, name,address)
from basic2;
BEGIN
START TRANSACTION;
INSERT INTO basic3 (id,name,address)
VALUES(LAST_INSERT_ID(),bname,baddress);
INSERT INTO basic4 (id,name,address)
VALUES(LAST_INSERT_ID(),bname,baddress);
COMMIT;
END//
DELIMITER;
我们可以通过两种方式做到这一点,一种是使用光标,另一种是使用 SELECT 并插入我的东西 SELECT 更好
喜欢这个
INSERT INTO basic3(名称,地址) SELECT 名称,地址来自 basic2;