用Trigger怎么实现这个功能? 想在一个表上加一个新列,比如 C,要实现每添加一行数据,每个新插入行的列c等于新插入行的两个列a和b的值的运算,c=a+b/1000.不知道这样的trigger语句怎么写呢?先谢谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql> create table t_magicleey1124( -> a int, -> b int -> );Query OK, 0 rows affected (0.11 sec)mysql> -- 在一个表上加一个新列,比如 Cmysql> alter table t_magicleey1124 add c int;Query OK, 0 rows affected (0.11 sec)Records: 0 Duplicates: 0 Warnings: 0mysql>mysql> desc t_magicleey1124;+-------+---------+------+-----+---------+-------+| Field | Type | Null | Key | Default | Extra |+-------+---------+------+-----+---------+-------+| a | int(11) | YES | | NULL | || b | int(11) | YES | | NULL | || c | int(11) | YES | | NULL | |+-------+---------+------+-----+---------+-------+3 rows in set (0.01 sec)mysql>mysql> create trigger tr_t_magicleey1124_bi before insert on t_magicleey1124 -> for each row -> set new.c = new.a + new.b / 1000;Query OK, 0 rows affected (0.11 sec)mysql>mysql> insert into t_magicleey1124(a,b) values (1,1000);Query OK, 1 row affected (0.41 sec)mysql> insert into t_magicleey1124(a,b) values (200,4000);Query OK, 1 row affected (0.05 sec)mysql> select * from t_magicleey1124;+------+------+------+| a | b | c |+------+------+------+| 1 | 1000 | 2 || 200 | 4000 | 204 |+------+------+------+2 rows in set (0.00 sec)mysql> 可以参考一下官方手册中的触发器部分。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html 还有一个问题,要求a和b都是int形式,c为double形式的,我按照你编的trigger,但是产生这样的错误。Column count doesn't match value count at row 1. 还有一个小问题,想给这个表再添加一个新的trigger,要实现这样的功能,每次update a或b的数据,要自动的update c的数据内容。 mysql 获得表记录总数的效率问题 急急急 mysql 我用phpmyadmin 修改密码后,为什么无法登录了 安装HandlerSocket出错<急>!!!!!! mysqldump的一个错误 求一个存储过程的编写,大家帮帮忙 mysql数据库热备份和导出导入数据表 join表的索引 有没有不是翻译的Mysql教程? 请教一个查询过慢的问题. 为什么存储过程不能这样写,我要怎么写 MySql注入的问题 续论坛单日最高帖HQL语句
-> a int,
-> b int
-> );
Query OK, 0 rows affected (0.11 sec)mysql> -- 在一个表上加一个新列,比如 C
mysql> alter table t_magicleey1124 add c int;
Query OK, 0 rows affected (0.11 sec)
Records: 0 Duplicates: 0 Warnings: 0mysql>
mysql> desc t_magicleey1124;
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| a | int(11) | YES | | NULL | |
| b | int(11) | YES | | NULL | |
| c | int(11) | YES | | NULL | |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.01 sec)mysql>
mysql> create trigger tr_t_magicleey1124_bi before insert on t_magicleey1124
-> for each row
-> set new.c = new.a + new.b / 1000;
Query OK, 0 rows affected (0.11 sec)mysql>
mysql> insert into t_magicleey1124(a,b) values (1,1000);
Query OK, 1 row affected (0.41 sec)mysql> insert into t_magicleey1124(a,b) values (200,4000);
Query OK, 1 row affected (0.05 sec)mysql> select * from t_magicleey1124;
+------+------+------+
| a | b | c |
+------+------+------+
| 1 | 1000 | 2 |
| 200 | 4000 | 204 |
+------+------+------+
2 rows in set (0.00 sec)mysql>
Column count doesn't match value count at row 1.