5.6 Column Attribute
5.6.1 Numeric Column Attribute
Numeric 數據類型而不是BIT可能有一下的屬性:
???1.UNSIGNED負值被忽略
?? 2.ZEROFILL引發獲取的值左邊被添加前導0到列展示的寬度。例如,如果存儲0,14和1234在列上,被定義 INT(5) zerofill,mysql展示他們作為00000,00014,和01234
?? 3.AUTO_INCREMENT應用于整形數據類型,它被使用來產生連續唯一的值
5.6.2? String Column Attribute
? 1.? CHARACTER SET指定字符集和,
? 2. COLLATE指定set collation集合
? 3.Binary是縮寫對于指定二進制集合,BINARY屬性和BINARY 數據類型是不同的,前者設定結婚對于一個非二進制字符串列,后者創建一個二進制字符串列。
使用binary屬性將引發char varchar text非二進制的字符串類型被創建使用binary,varbinary和blob二進制類型
5.6.3 一般的列屬性
1.NULL 和NOT NULL
2.DEFAULT ,如果指定一個默認值NULL到非空的列會產生錯誤
3.默認值越界超出了數據類型,例如一個負值對于unsigned數值列
數值型的默認值是0,字符串是空字符串,日期類型是00:00:00
5.7? 使用AUTO_INCREMENT column Attribute
AUTO_INcrement屬性可能必須不為空,MYSql也提供last——inset——id()函數來返回最近產生的auto——increment值。這個值返回有last——insert——id()。
對于定義auto——increment下面的語句等效:
insert into t (id,name) values(null,'hans');
insert into t(name) values('Hans');
insert into t(id) values(NULL),(NULL),(17),(NULL),(NULL)
id
1
2
17
18
19
Auto_increment列被設置NULL它將被設置為下個序列的值,這可能被發送如果替換列為0除非使用NO_AUTO_VALUE_ON_ZERO
當達到上限時,將產生重復鍵值錯誤
如果你刪除含有值的的行,當插入新的行是不會被重用,如:1 to 10行,當刪除記錄包含10的,下個序列是11而不是10(myisam,innodb)
對于mysql> create table multisequece(
??? -> name? char(10) not null,
??? -> name_id int unsigned not null auto_increment,
??? -> primary key (name, name_id)
??? -> );
ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
總結
以上是生活随笔為你收集整理的5.6 Column Attribute的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5.5.3 per-connectio
- 下一篇: 所有排序算法