update set命令用来修改表中的数据。update set命令格式:update 表名 set 字段=新值,… where 条件。
举例如下:mysql>update MyClass set name='Mary' where id=1单表的MySQL UPDATE语句:UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1=expr1 [col_name2=expr2] [WHERE where_definition] [ORDER BY] [LIMIT row_count]。
多表的UPDATE语句:UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1=expr1 [, col_name2=expr2] [WHERE where_definition]。
UPDATE语法可以用新值更新原有表行中的各列。SET子句指示要修改哪些列和要给予哪些值。WHERE子句指定应更新哪些行。如果没有WHERE子句,则更新所有的行。如果指定了ORDER BY子句,则按照被指定的顺序对行进行更新。LIMIT子句用于给定一个限值,限制可以被更新的行的数目。
1.从语法上来说,你这样写是没有问题的,因为这里把new当成表名。编译自然是成功的,但是当插入数据用到触发器的时候,就会报找不到new表的错误了。2.列出每一个字段是可以的,但是写起来比较麻烦,要这样:
insert into ct_master1 value (new.c1,new.c2,new.c3)
简洁的方法,就是插入的时候设定一个唯一性的值,比如id
然后就可以把insert改成:
insert into ct_master1 select * from ct_master where ct_master.id=NEW.id
这样就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)