2012-05-16 90 views
0

我有2個表MYSQL自動更新第二表查詢

Try1(ID和值a)

try2(ID和valueB)

在表中Try1 ID是自動增量和主鍵,我不知何故想鏈接這個TRY1.ID到try2.ID所以,當我insert into try1 (valueA)=XXX,然後將其自動生成的還體現在Try2

的ID

(是基於第一創建一個外鍵關聯的解決辦法嗎?)

我使用phpMyAdmin和PHP插入查詢。任何可能的方式將有所幫助,謝謝

+0

爲什麼不只是添加try1表中的valueb列? – symcbean

回答

4

我認爲你正在尋找一個觸發 - 是這樣的:

DELIMITER $$ 
CREATE 
    /*[DEFINER = { user | CURRENT_USER }]*/ 
    TRIGGER `CopyTry1RowToTry2` AFTER INSERT ON `try1` 
    FOR EACH ROW BEGIN 
     INSERT INTO `try2` (`id`,`value`) VALUES(NEW.`id`,NEW.`value`) 
    END; 
$$ 
DELIMITER ; 
+0

SQL查詢: CREATE TRIGGER'CopyTry1RowToTry2' INSERT ON'AFTER try1' FOR EACH ROW BEGIN INSERT INTO'try2' SET ID = NEW.ID; MySQL說: #1064 - 你的SQL語法錯誤;檢查對應於你的MySQL服務器版本的手冊,在第3行附近使用正確的語法 – Yahoo

+0

這是一個相當普遍的錯誤,哈哈。恐怕你需要完成研究,以滿足你的需求 - 特定 - 只是谷歌「MySQL觸發示例」。我已經更新了我的答案,並且沒有錯誤地爲我運行 – GDP

2

在Try2提及Try1 ID as foriegn鍵。像:

CREATE TABLE Try2 (id INT, Try1_id INT, valueb INT, 
        INDEX par_ind (Try1_id), 
        FOREIGN KEY (Try1_id) REFERENCES Try1(id) 
         ON DELETE CASCADE 
) ENGINE=INNODB; 

有關foriegn項的詳細信息請參閱本

http://dev.mysql.com/doc/refman/5.5/en/innodb-foreign-key-constraints.html

+0

插入try1後,當我做了select * try2我沒有得到任何結果 – Yahoo

+0

嘿,它不是這樣的;我想你會感到困惑;你不會在id表中自動獲取id,而是當你插入子表時,你可以使用PKID並將它插入FK列的子表中。如果你想,自動插入到子表中,那麼你需要一個觸發器。 – Rahul