后我有两个不相关的表tbl_A & tbl_B触发更新与来自另一个表中的数据相同的表插入
tbl_A
+----+---------------------+------+
| id | url | slug |
+----+---------------------+------+
| 1 | http://example.com/ | 3qqd |
| 2 | http://example.com/ | t8af |
| 3 | http://example.com/ | sjim |
| 4 | http://example.com/ | awfo |
| 5 | http://example.com/ | 6myy |
+----+---------------------+------+
tbl_A描述:
+---------------------+---------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+---------------------+------+-----+---------------------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| url | text | YES | | NULL | |
| slug | varchar(255) | YES | MUL | NULL | |
+---------------------+---------------------+------+-----+---------------------+----------------+
和另一个表:
tbl_B
+----+---------------------+---------------------+------+
| ID | user_name | url | slug |
+----+---------------------+---------------------+------+
| 1 | john.reese | NULL | NULL |
+----+---------------------+---------------------+------+
tbl_B描述:
+---------------------+---------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+---------------------+------+-----+---------------------+----------------+
| ID | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| user_name | varchar(60) | NO | MUL | | |
| url | text | YES | | NULL | |
| slug | varchar(255) | YES | MUL | NULL | |
+---------------------+---------------------+------+-----+---------------------+----------------+
tbl_A.id无关tbl_B.ID。
tbl_B.ID是userID字段,并且在新用户注册时被动态填充。为了让tbl_B.ID获得一行作为用户注册自动插入,tbl_B.ID值会自动递增。
tbl_A另一方面已经存在的所有细节。
我想达到什么:每当一个新的用户注册和用户ID是 INSERT到tbl_B.ID,同时它应该触发 tbl_B.user和tbl_B.slug与取自值的更新tbl_A.user和 tbl_A.slug。
结果:ID后加1
+----+---------------------+---------------------+------+
| ID | user_name | url | slug |
+----+---------------------+---------------------+------+
| 1 | john.reese | http://example.com/ | 3qqd |
+----+---------------------+---------------------+------+
希望我能够解释。我试图使用触发器,但迷路了,是一个mysql的新手,请耐心等待。
drop trigger if exists bi_tbl_B $$
delimiter $$
create trigger bi_tbl_B before insert on tbl_B
for each row begin
UPDATE tbl_B
SET url = url +
(SELECT url
FROM tbl_A
WHERE id = NEW.id)
WHERE ID = NEW.ID;
end;
$$
delimiter ;
我不知道这是否甚至可能,或者我应该尝试其他方式。
上tbl_B更新tabl_A.user_id栏添加一个字段user_id
在tbl_A和AFTER INSERT
与tbl_B.ID
的用户ID,我愿意听取建议,如果不是则触发程序。
Thnx很多,我现在就去试试。只是为了确保每次插入一个新的ID tbl_B,这会更新用户,并用tbl_B的新值为该ID添加一个新值,请原谅我的无知,尽量学习 – mesumosu