关于MySQLalter的用法的信息
关于MySql使用alter的问题
测试了一下, 好像无法让默认值为 日期 / 时间的.
仅仅有一种特殊情况下可以.
ALTER TABLE money
MODIFY COLUMN
time TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
但是麻烦的地方在于:
上面的写法,默认值是可以成为当前日期时间了,但是好像
ON UPDATE CURRENT_TIMESTAMP 会导致 “更新的时候,也会更新这个字段。”
SQL语言中的修改语句ALTER和UPDATE有何区别?
一、功能上的区别
1、Alter:修改表结构
例如:
增加表的字段
Alter table test Add(id,int).
2、UPdate:修改表数据
例如:
修改字段id列的值
update test set id=2;
二、本质上的区别
1、Alter是数据定义语言(Data difinition Language),在修改表的结构时,不需要Commit和Rollback。
2、Update是数据数据操作语言(Data manipulation Language),在修改数据值时,需要Commit和Rollback,否则提交的结构无效。
扩展资料
Update用法:
Update是一个数据库SQL语法用语,用途是更新表中原有数据,单独使用时使用where匹配字段。
语法为:UPDATE 表名称?SET?列名称 = 新值?WHERE?列名称 = 某值
例如:Update table_name?Set?column_name = new_value?Where?column_name = some_value
update使用注意事项:
1、sp_updatestats可以更新统计信息到最新。
2、低内存会导致未被客户端连接的查询计划被清除。
3、修改表结构,修改索引后,查询计划会被清除,可以再修改后运行几遍查询。
4、使用update时候,order by 会影响查询速度,where中使用函数则会调用筛选器进行扫描,扫描表要尽量避免。
参考资料来源:百度百科-update
mysql 中alter语句中change和modify的区别
modify能修改字段类型和约束,而change不能。
change用来字段重命名,不能修改字段类型和约束;
modify不用来字段重命名,只能修改字段类型和约束;
试验比较:
1、字段重命名:
1)change
mysql alter table t1 change number id char(2);
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0
2)modify
mysql alter table t1 modify id num int(2);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'num int(2)' at line 1
mysql
结论:能用change重命名,而modify不能。
2、修改字段类型和约束
1)modify
mysql alter table t1 modify id int(2);
Query OK, 0 rows affected (0.06 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql alter table t1 modify id int(2) not null;
Query OK, 0 rows affected (0.08 sec)
Records: 0 Duplicates: 0 Warnings: 0
2)change
mysql alter table t1 change id char(2);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'char(2)' at line 1
mysql alter table t1 change id char(2) not null;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'char(2) not null' at line 1
结论:modify能修改字段类型和约束,而change不能。
最终结论:change用来字段重命名,不能修改字段类型和约束;
modify不用来字段重命名,只能修改字段类型和约束;