关于MySQLalter的用法的信息

http://www.itjxue.com  2023-01-24 22:21  来源:未知  点击次数: 

关于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不用来字段重命名,只能修改字段类型和约束;

(责任编辑:IT教学网)

更多

推荐CMS技巧文章