第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

MySql錯(cuò)誤:無法更新存儲(chǔ)函數(shù)/觸發(fā)器中的表,因?yàn)樗驯徽{(diào)用此存儲(chǔ)函數(shù)/觸發(fā)器的語句使用

MySql錯(cuò)誤:無法更新存儲(chǔ)函數(shù)/觸發(fā)器中的表,因?yàn)樗驯徽{(diào)用此存儲(chǔ)函數(shù)/觸發(fā)器的語句使用

紅顏莎娜 2019-08-28 10:07:09
MySql錯(cuò)誤:無法更新存儲(chǔ)函數(shù)/觸發(fā)器中的表,因?yàn)樗驯徽{(diào)用此存儲(chǔ)函數(shù)/觸發(fā)器的語句使用我正在運(yùn)行MySQL查詢。但是當(dāng)從表單輸入添加新行時(shí),我收到此錯(cuò)誤:Error: Can't update table 'brandnames' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.從代碼:CREATE TRIGGER `capital` AFTER INSERT ON `brandnames`FOR EACHROW UPDATE brandnamesSET bname = CONCAT( UCASE( LEFT( bname, 1 ) ) , LCASE( SUBSTRING( bname, 2 ) ) )這個(gè)錯(cuò)誤是什么意思?
查看完整描述

3 回答

?
縹緲止盈

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊

INSERT觸發(fā)器觸發(fā)時(shí),您無法更改表。INSERT可能會(huì)執(zhí)行某些鎖定,這可能會(huì)導(dǎo)致死鎖。此外,從觸發(fā)器更新表將導(dǎo)致相同的觸發(fā)器在無限遞歸循環(huán)中再次觸發(fā)。這兩個(gè)原因都是MySQL阻止你這樣做的原因。

但是,根據(jù)您要實(shí)現(xiàn)的目標(biāo),您可以使用NEW.fieldname訪問新值,甚至可以使用舊值(如果使用OLD進(jìn)行更新)來訪問新值。

如果您有一行命名,full_brand_name并且您希望在字段中使用前兩個(gè)字母作為短名稱,則small_name可以使用:

CREATE TRIGGER `capital` BEFORE INSERT ON `brandnames`FOR EACH ROW BEGIN
  SET NEW.short_name = CONCAT(UCASE(LEFT(NEW.full_name,1)) , LCASE(SUBSTRING(NEW.full_name,2)))END


查看完整回答
反對(duì) 回復(fù) 2019-08-28
?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

正確的語法是:

FOR EACH ROW SET NEW.bname = CONCAT( UCASE( LEFT( NEW.bname, 1 ) )
                                   , LCASE( SUBSTRING( NEW.bname, 2 ) ) )


查看完整回答
反對(duì) 回復(fù) 2019-08-28
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

“BEFORE-INSERT”-trigger是在插入上實(shí)現(xiàn)相同表更新的唯一方法,并且只能從MySQL 5.5+中實(shí)現(xiàn)。但是,自動(dòng)增量字段的值僅適用于“AFTER-INSERT”觸發(fā)器 - 在BEFORE情況下默認(rèn)為0。因此,以下示例代碼將根據(jù)自動(dòng)增量值設(shè)置先前計(jì)算的代理鍵值id,但不會(huì)實(shí)際工作,因?yàn)镹EW.id將始終為0:

create table products(id int not null auto_increment, surrogatekey varchar(10), description text);create trigger trgProductSurrogatekey before insert on productfor each row set NEW.surrogatekey = 
  (select surrogatekey from surrogatekeys where id = NEW.id);


查看完整回答
反對(duì) 回復(fù) 2019-08-28
  • 3 回答
  • 0 關(guān)注
  • 2699 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)