在mysql中建立觸發器出錯,高人解

2025-04-04 07:55:31 字數 1394 閱讀 1554

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.訂單號 訂單明細.訂單號 當訂貨單中的訂單號被刪除時,訂單明細表的訂單號的統計資料發生相應...