1樓:網友
你犯了三個錯誤——
一、賦值前沒宣告變數。
mysql在賦值給變數前應該首先用declare語句宣告變數名和型別,例如declare myid int;
二、賦值語句錯誤。
set @myid:=; 這條賦值語句是錯誤的。在mysql裡,賦值語句應該寫做set myid=;
三、結束符沒有指定。
mysql預設的語句結束陪答孝符是分號;所以如果你在寫觸發器定義語句的過程中遇到了分號;則mysql就認為定義語句結束了,從而造成這個觸發器的定義是不完整的,因此出現了語法錯誤的提示舉豎。
改正的方法是在phpmyadmin命令框下的delimiter(結蘆稿束符)選項中改為其他的字元,例如斜線/。執行後就可以了。
怎樣使用mysql新建觸發器
2樓:兄弟連教育
使用mysql新建觸發器的方法:
1、首先,需要確定自己的mysql資料庫的版本,因為my sql資料庫是從版本才開始支援觸發器的。
2、在電腦的dos命令介面中輸入 mysql --version,來獲取mysql的版本號,注意version的兩個橫線和之前的mysql是有乙個空格的。
3、上一步獲取了mysql版本號,就開始建立觸發器。採用以檢視加**的方式建立,在資料表中找到要執行刪除操作的表,然後右鍵設計表。
4、這樣就開啟了表的設計頁面,可以看到有乙個觸發器選項卡,點選「觸發器」
5、可以看到對應的選項,在名裡面新增需要新建的觸發器的名字,在觸發選項中選擇before或者after,然後在插入、更新、刪除三個選項中勾選乙個。
6、這樣們就建立了乙個名為「datri」的觸發器,在刪除操作執行之後觸發。
7、然後在下面的定義下面的框中輸入需要執行的操作。然後點選sql預覽,可以看到整個觸發器的**。
8、最後就是儲存了,由於做的是觸發器,儲存之後,在執行刪除操作時,這個觸發器才相當於被執行。
怎樣使用mysql新建觸發器
3樓:網友
建立觸發器的語法:
create trigger trigger_nameon table_name
with encryption]
for [delete, insert, update]ast-sql語句。
gowith encryption表示加密觸發器定義的sql文字delete, insert, update指定觸發器的型別insert觸發器的工作原理:
1.執行insert插入語句,在表中插入資料行;
2.觸發insert觸發器,向系統臨時表inserted表中插入新行的備份(副本)
3.觸發器檢查inserted表中插入的新行資料,確定是否需要回滾或執行其他操作。
mysql 觸發器中遇到的問題
我想應該是你的sql語句有問題,我也遇到過乎好襲,在公司的伺服器歲兄上測試好了後,然後放到外面伺服器,報出了錯誤,後來找到的原因是兩個資料的對sql語句的要求不同,有的資料庫會把有些sql語句像 select from table where id 不會報錯返回的值也是為空,但有的資料庫會直接報出錯...
SQL判斷觸發器不存在則執行建立觸發器語句怎麼過不去一直報錯
create trigger語句必須單獨放在一個查詢裡執行才可以,前邊不能有任何其他語句。你在create trigger之前放了go我想就是為了讓它在單獨的查詢中執行,但是exists就不起作用了,而且go之前的begin和最後的end是在兩個批查詢中,本身就不能配對,語法就有問題。exists用...
sql語言建立觸發器的問題
create trigger trdel on 訂貨單 for delete asupdate 訂單明細 set 訂單資料 訂單明細.訂單資料 a.訂單資料 from deleted as a where a.訂單號 訂單明細.訂單號 當訂貨單中的訂單號被刪除時,訂單明細表的訂單號的統計資料發生相應...