2015-05-09 59 views

回答

1

你不能有這2個查詢在一起,但同樣可以通過觸發一些處理爲

delimiter // 
create trigger template_del before delete on template 
for each row 
begin 
insert into deletedtemplate (template) 
SELECT template FROM template WHERE id = old.id ; 
end;// 

delimiter ; 

所以如果刪除template上的內容,將在deletedtemplate表上發生插入

+0

**意外創建** –

+0

你不能把這個變成你的PHP代碼,你需要直接添加到MySQL。 –

1

試試這個......也許讓你的字段的名稱不同於你的表的名字......所以表格仍然是模板,但改變字段currentTemplate或類似的東西。我不確定這是否會引起任何問題,但是它可以減少讀取/編輯查詢時的混淆。

REPLACE INTO 
    `deletedtemplate` 
    (`template`) 
select 
    `template` 
from 
    `template` 

where 
    `id` = $id; 
+0

am getting this錯誤:** SQLSTATE [42000]:語法錯誤或訪問衝突:1064'as d,template as t(d.template)values(t.template)where t.id = 5'at line 1 ** –

+0

發佈了更新,我的查詢語法錯了,您可以嘗試我發佈的新查詢。 @KalaiS –

+0

仍然得到相同的錯誤... –

1

簡單,你可以使用這個組合這些都查詢:如果我把這個代碼的功能我得到錯誤的

$sql = "INSERT INTO deletedtemplate (template) SELECT template FROM template WHERE id = $id; DELETE FROM template WHERE id = $id "; 
+0

哎呀,我已經告訴過你了。我沒有意識到這是一個可以接受的答案。哈哈:)作爲其實不是一個查詢,而是兩個。第一個查詢在分號結束。 :)無論如何,我會爲你射擊。 –