2017-05-11 74 views
-2

如何才能將以下查詢整合到MySQL中?如何插入後只插入新行插入後運行查詢?

query1 
INSERT INTO table (a, b, c ...) 
SELECT a, b, c ... FROM table 
WHERE code = 888 

query2 
UPDATE table SET a=?,b=?,... 
WHERE code = 888 

基本上我需要執行query2僅當query1在表中插入新行時。

+0

@vSugumar你錯了,請閱讀更多關於MySQL,這是可能的 –

+1

你想創建[觸發](https://dev.mysql.com/doc/refman/5.5/en/create-trigger.html )在更新事件後? – Alexander

+0

獲取插入行的行數...... if($ rows> 0)然後執行更新查詢 – pAsh

回答

0

您可以將這種方式:從表1

INSERT INTO table (a, b, c ...) 
SELECT ?, ?, c ... FROM table 
WHERE code = 888 

選擇數據並將它插入和一些常數值到表B

-1

按照以下流程 我認爲解決您的問題 QUERY1

INSERT INTO table (a, b, c ...) 
SELECT a, b, c ... FROM table 
WHERE code = 888 
$last_id = mysql_insert_id(); 

query2

UPDATE table SET a=?,b=?,... 
WHERE id= $last_id; 
+0

不建議使用不推薦使用的'mysql_ *'api – Jens

0

使用觸發器來解決您的問題。例如:

CREATE TRIGGER MyTrigger AFTER INSERT ON table 
    FOR EACH ROW 
    BEGIN 
    UPDATE table SET a=?,b=?,... 
    END; 

此外,您可以添加條件來檢查插入的值。有關更多詳細信息,請參閱CREATE TRIGGER Syntax主題和examples