INSERT RETURNING 从一个查询到另一个查询
INSERT RETURNING from one query to another
所以我需要在两个表中插入一个值,但我需要两个表中的 ID 相同,我试图从第一个查询中获取重新调整 ID 以将其传递给第二个查询。
这是我目前所拥有的。
INSERT
INTO
FantasyLeague.calendar (
round,
status,
race_initial,
race_name,
city,
country,
circuit_name,
start_date,
quali_deadline,
sprit_deadline,
race_deadline,
series_id)
VALUES (
new_round,
new_status,
new_race_initial,
new_race_name,
new_city,
new_country,
new_circuit_name,
new_start_date,
new_quali_deadline,
new_sprit_deadline,
new_race_deadline,
new_series_id)
RETURNING SET @id = race_id;
INSERT
INTO
FantasyLeague.races (race_id,
drivers_results,
series_id)
VALUES(
@id,
new_driver_results,
new_series_id
);
race_id 在 FantasyLeague.calendar 中是一个自动递增的 INT,但在 FantasyLeague.races 中不是。
我尝试使用 post 中的方法,但出现语法错误。
INSERT
INTO
FantasyLeague.calendar (
round,
status,
race_initial,
race_name,
city,
country,
circuit_name,
start_date,
quali_deadline,
sprit_deadline,
race_deadline,
series_id)
VALUES (
new_round,
new_status,
new_race_initial,
new_race_name,
new_city,
new_country,
new_circuit_name,
new_start_date,
new_quali_deadline,
new_sprit_deadline,
new_race_deadline,
new_series_id)
RETURNING race_id) )
INSERT
INTO
FantasyLeague.races (race_id,
drivers_results,
series_id)
SELECT
race_id,
new_driver_results,
new_series_id;
提前致谢。
从未使用过 Maria,但我相信您会采用 MySQL 方法:
INSERT INTO FantasyLeague.races (
race_id,
drivers_results,
series_id)
VALUES(
LAST_INSERT_ID(),
new_driver_results,
new_series_id
);
LAST_INSERT_ID()
returns 刚刚插入 FantasyLeague.calendar
之前的 ID,从而连接关系
您还可以将 ID 存储在您使用的变量中(可能多次)..
INSERT INTO calendar ...;
SET @lii = LAST_INSERT_ID();
INSERT INTO FantasyLeague.races (
race_id,
drivers_results,
series_id
)
VALUES(
@lii,
new_driver_results,
new_series_id
);
INSERT INTO FantasyLeague.other(
race_id,
blah
)
VALUES(
@lii,
blah
);
所以我需要在两个表中插入一个值,但我需要两个表中的 ID 相同,我试图从第一个查询中获取重新调整 ID 以将其传递给第二个查询。 这是我目前所拥有的。
INSERT
INTO
FantasyLeague.calendar (
round,
status,
race_initial,
race_name,
city,
country,
circuit_name,
start_date,
quali_deadline,
sprit_deadline,
race_deadline,
series_id)
VALUES (
new_round,
new_status,
new_race_initial,
new_race_name,
new_city,
new_country,
new_circuit_name,
new_start_date,
new_quali_deadline,
new_sprit_deadline,
new_race_deadline,
new_series_id)
RETURNING SET @id = race_id;
INSERT
INTO
FantasyLeague.races (race_id,
drivers_results,
series_id)
VALUES(
@id,
new_driver_results,
new_series_id
);
race_id 在 FantasyLeague.calendar 中是一个自动递增的 INT,但在 FantasyLeague.races 中不是。
我尝试使用
INSERT
INTO
FantasyLeague.calendar (
round,
status,
race_initial,
race_name,
city,
country,
circuit_name,
start_date,
quali_deadline,
sprit_deadline,
race_deadline,
series_id)
VALUES (
new_round,
new_status,
new_race_initial,
new_race_name,
new_city,
new_country,
new_circuit_name,
new_start_date,
new_quali_deadline,
new_sprit_deadline,
new_race_deadline,
new_series_id)
RETURNING race_id) )
INSERT
INTO
FantasyLeague.races (race_id,
drivers_results,
series_id)
SELECT
race_id,
new_driver_results,
new_series_id;
提前致谢。
从未使用过 Maria,但我相信您会采用 MySQL 方法:
INSERT INTO FantasyLeague.races (
race_id,
drivers_results,
series_id)
VALUES(
LAST_INSERT_ID(),
new_driver_results,
new_series_id
);
LAST_INSERT_ID()
returns 刚刚插入 FantasyLeague.calendar
之前的 ID,从而连接关系
您还可以将 ID 存储在您使用的变量中(可能多次)..
INSERT INTO calendar ...;
SET @lii = LAST_INSERT_ID();
INSERT INTO FantasyLeague.races (
race_id,
drivers_results,
series_id
)
VALUES(
@lii,
new_driver_results,
new_series_id
);
INSERT INTO FantasyLeague.other(
race_id,
blah
)
VALUES(
@lii,
blah
);