Saya menjalankan pertanyaan MySQL. Walau bagaimanapun, apabila menambah baris baharu daripada input borang, saya mendapat ralat ini:
Error: Can't update table 'brandnames' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
Daripada kod:
CREATE TRIGGER `capital` AFTER INSERT ON `brandnames` FOR EACH ROW UPDATE brandnames SET bname = CONCAT( UCASE( LEFT( bname, 1 ) ) , LCASE( SUBSTRING( bname, 2 ) ) )
Apakah maksud ralat ini?
Sintaks yang betul ialah:
Apabila
INSERT
触发器触发时,您无法更改表。INSERT
beberapa operasi penguncian mungkin dilakukan, yang boleh menyebabkan kebuntuan. Selain itu, mengemas kini jadual daripada pencetus akan menyebabkan pencetus yang sama menyala semula dalam gelung rekursif tak terhingga. Kedua-dua sebab ini adalah mengapa MySQL menghalang anda daripada melakukan ini.Namun, bergantung pada apa yang anda ingin capai, anda boleh menggunakan
NEW.fieldname
访问新值,甚至可以使用旧值 - 如果执行UPDATE
-- 与OLD
.Jika anda mempunyai medan bernama
full_brand_name
的行,并且您想在small_name
menggunakan dua huruf pertama sebagai nama pendek, anda boleh menggunakan: