MySql-Set字段类型

来源:互联网 发布:mac终端建立文件夹 编辑:程序博客网 时间:2024/05/17 01:56

首先先创建一个表

[sql] view plain copyCREATE TABLE `TestSet` (    `Id` int(4) NOT NULL AUTO_INCREMENT,    `set1` set('ABC','1111','2222','XXX') DEFAULT NULL,    PRIMARY KEY (`Id`)  ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;  

测试2: 插入数据

INSERT INTO `testset` VALUES ('1', '2222,1111');  INSERT INTO `testset` VALUES ('1', '1111,2222');  

SELECT结果:
1, 1111,2222,
2, 1111,2222,


SET内的数据顺序是由列表顺序决定的

INSERT INTO `testset` VALUES ('3', 'ABCD');  

出错:
[SQL] INSERT INTO testset VALUES (‘3’, ‘ABCD’);
[Err] 1265 - Data truncated for column ‘set1’ at row 1

不能插入非SET中定义好的值


测试3: 修改表结构

ALTER TABLE `testset`  MODIFY COLUMN `set1`  set('ABCD','1111','2222','XXX') ;  

修改没有使用的值是可以的


ALTER TABLE `testset`  MODIFY COLUMN `set1`  set('ABCD','11114444','2222','XXX') ;  [Err] 1265 - Data truncated for column 'set1' at row 1

不可以修改已经使用过的值