gpt4 book ai didi

mysql - 触发插入到单独的表中

转载 作者:行者123 更新时间:2023-11-29 12:19:42 26 4
gpt4 key购买 nike

问一个关于触发器的快速问题。

我有两张 table 。即人和属性。

人具有以下结构:

| id | firstname | surname | DOB | Age

属性具有以下结构:

| id | person_id | haircolor | eyecolor | weight | height

我有以下触发器:

 Insert Into attributes (person_id)
SELECT id
FROM INSERTED

当一条记录插入到人员表中时,一条记录会插入到属性表的 person_id 列中,其中 person_id 与人员表的 ID 相同。插入行的其余部分默认为空。

现在,当两个表都是空的并且我创建第一条记录时,一切都会按预期进行。但是当我创建第二条记录时,两条记录被插入到属性表中。

我需要它,以便当我在人员表中插入一行时,只有一个相应的行被插入到属性表中。

在撰写本文时,我正在使用最新版本的 phpmyadmin。

期待听到一些回应干杯

最佳答案

您可以执行以下操作 -

delimiter //
create trigger People_ins after insert on People
for each row
begin
declare pcount int;
select count(*) into pcount from attributes where person_id = new.id;
if pcount = 0 then
insert into attributes
(person_id) values (new.id);
end if;
end ;//

delimiter ;

如果条件部分始终是一对一关系,则可以跳过条件部分。

关于mysql - 触发插入到单独的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29211239/

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