mysql中自动修改数据表的设计(默许的数据列修改)

9.9.6 自动修改数据表的设计(默许的数据列修改)

在创建(create table)或修改(alter table)一个数据表的时候,MYSQL会在特定条件下对这个数据表的设计方案自动做出一些修改,其理由或者是那么做可以让数据表的效率更高,或者是设计思路MYSQL无法实现.
这里要特别提醒那些从期货数据库系统迁移过来的读者注意:MYSQL在对数据表设计方案自动做出勤率修改时不会给出任何提示,所以一事实上要用SHOW CREATE TABLE命令去检查一下最终的数据表设计方案是不是所想像的样子。在下面的例子里。MYSQL自做主张地把一个CHAR(2)数据列改成了一个VARCHAR(20)数据列,还给那两个数据列加上了defautl null属性.
CREATE TABLE test1(col1 VARCHAR(20), col2 CHAR(20))
show create table test1
create table test1(
col1 varchar(20) default null,
col2 varchar(20) default null
)engine=MYISAM default charset=latin1

以下是mysql会对数据表设计方案自动做出的几项重大修改:
1.如果n<4,VARCHAR(n)数据列将被修改为CHAR(n)数据列.
2.如果n>3,并且在同一个数据表里还有其他的VARCHAR,TEXT,或BLOG数据列的话,CHAR(n)将被系统自动修改为CARCHAR(n).如果数据表里只有固定长度的数据列,但CHAR(n)将不发生变化.
3.即使没有设定,MYSQL也会自动给primary key数据列自动加上NOT NULL属性.
mysql文档把这种自动方式的修改称为默许的数据列修改(client column changes),这方面的详细信息可以在HTTP://dev.mysql.com/doc/mysql/en/silent-column-changes.html网址处的文章里找到。
总之在数据库的设计和创建工作这后,一定要仔细检查数据库,数据库里的数据表,数据表里的数据列,数据列的各有关属性是不是都如所想.

以上摘自<<Mysql 5 权威指南>>第3版 第195页

25 thoughts on “mysql中自动修改数据表的设计(默许的数据列修改)

  1. Pingback: engagement rings

  2. Pingback: 바카라싸이트

  3. Pingback: ww88

  4. Pingback: corn hole boards for sale

  5. Pingback: xe88 apk

  6. Pingback: rubiks.glove.co.il

  7. Pingback: คาสิโน

  8. Pingback: login sbobet888

  9. Pingback: กังนัม คลินิก

  10. Pingback: my review here

  11. Pingback: patek philippe geneve replica watches

  12. Pingback: sahabatqq

  13. Pingback: 카지노사이트

  14. Pingback: istanbul escort

  15. Pingback: 카지노

  16. Pingback: https://turystyka24.com.pl/forum/hotele-i-noclegi-f9/villahoff-pl-opinie-t163.html

  17. Pingback: 데모바카라

  18. Pingback: https://dlugi-faktury.pl/

  19. Pingback: 사설토토

  20. Pingback: Denture Implants First Class Dental Care

  21. Pingback: https://przedszkolelidzbark.pl/

  22. Pingback: 바카라 쿠폰

  23. Pingback: cheap viagra pills for men

  24. Pingback: cialis 20 mg

  25. Pingback: naltrexone tablet brand name

Leave a Reply