0
這是一系列問題中的第三個問題。現在我已經有了一個MySQL觸發器,它可以將一個表中的一行更新爲一個單獨表格中行的新值。修復我的多表觸發器?
下面是一些視覺效果:
CREATE TABLE As (
id
a
) ENGINE MyISAM
CREATE TABLE Bs (
id
b
) ENGINE MyISAM
CREATE TABLE AbyB (
id
aid
bid
)
ROWS
| A | B | AbyB |
id| 1 | 2 | 0 |
a | i | x | x |
b | x | i | x | --> | x | 0 | x |
aid | x | x | 1 |
bid | x | x | 2 |
INSERT INTO table1 VALUES(1);
DELIMITER $$
CREATE TRIGGER dualupdate() BEFORE INSERT INTO Bs.b
BEGIN
SET @a = 'SELECT NEW.b'; #I don't know if I should use NEW, actually.
SET @b = 'SELECT NEW.id';
SET @x = 'SELECT aid FROM AbyB WHERE bid = @b';
UPDATE As
SET a = @a #SET is used to set variables, right? So, am I using it wrong?
WHERE id = @x;
END$$
DELIMITER ;
因此,基本上做的是在a更新時更新b,在新的B.id與AbyB中的A.id重疊的位置,對吧? :D –
@ Wolfpack'08正好 – Johan
甜。謝謝,約翰。今晚我將能夠測試它。我很激動。 :) –