gpt4 book ai didi

mysql - 从其他表中插入一些值

转载 作者:行者123 更新时间:2023-11-30 23:19:15 26 4
gpt4 key购买 nike

我有这两张表...

表 1:

IDPlayer  int

表 2:

ID_event int (Autoincrement - probably bad)
IDPlayer2 int
participate bit

我有这个命令,但我不知道,对于 1 个插入是 1 个事件,我该怎么做...

Insert into Table2 (ID_IDPlayer2) 
Select Table1.IDPlayer
FROM Table1

输出:

event  player  participate  
1 1 False
2 2 False
3 3 False
4 4 False
5 1 False
6 2 False
7 3 False
8 4 False

但我想要这个:

event  player  participate  
1 1 False
1 2 False
1 3 False
1 4 False
2 1 False
2 2 False
2 3 False
2 4 False

最佳答案

如果您使用的是 SQL Server,

您可以继续使用自动递增,但您可能希望为“事件”列启用身份插入:

SET IDENTITY_INSERT Table2 ON;

之后,您可以将玩家插入表 2 以进行特定事件。下一句会将所有玩家插入到事件 1 中:

Insert into Table2 (ID_event , ID_IDPlayer2) 
Select 1, Table1.IDPlayer
FROM Table1

尽管如此,我不会为此使用自动增量。我认为您应该保留第二个表来存储事件 (EventsTable),如果需要,请在那里保留自动增量,并使 Table2.ID_Event 成为对 EventsTable.ID 的引用(作为外键);

根据您的要求,一种解决方案是使用触发器。示例:

CREATE TABLE Events (id INT); #Events table

CREATE TABLE Table2 (ID_event INT, IDPlayer2 INT); #Events and player relation table

CREATE TABLE Table1 (IDPlayer2 INT); #Players table
INSERT INTO Table1 VALUES (1);
INSERT INTO Table1 VALUES (2);
INSERT INTO Table1 VALUES (3);
INSERT INTO Table1 VALUES (4);


CREATE TRIGGER NewEvent ON Events AFTER INSERT AS
BEGIN
INSERT INTO Table2 SELECT inserted.id, IDPlayer2 FROM Table1, inserted;
END

INSERT INTO Events VALUES (1001);
INSERT INTO Events VALUES (1002);

SELECT * FROM Table2;

关于mysql - 从其他表中插入一些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16273960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com