2016 - 2024

感恩一路有你

一、设置MySQL表字段的唯一性

浏览量:2141 时间:2024-07-09 20:41:42 作者:采采

MySQL表中,主键字段是默认唯一的。但对于非主键字段,如何设置唯一性约束呢?下面我将分享一些经验:

1. 创建表并设置唯一性约束

首先,我们在test数据库中创建一个名为chengshi的表,主键是id,另外有shengfen和chengshi两个字段。我们希望chengshi字段具有唯一性约束:

```sql

CREATE TABLE `chengshi` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`shengfen` varchar(10) DEFAULT NULL,

`chengshi` varchar(10) DEFAULT NULL,

`shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`)

) ENGINEInnoDB AUTO_INCREMENT10 DEFAULT CHARSETutf8;

```

2. 插入数据并查看

接下来我们向表中插入一些数据:

```sql

INSERT INTO `chengshi` (`id`, `shengfen`, `chengshi`, `shijian`) VALUES

(1, '河南', '安阳', '2019-03-05 10:14:27'),

(2, '河南', '郑州', '2019-03-05 10:14:27'),

(3, '河南', '洛阳', '2019-03-05 10:14:27'),

(4, '河南', '漯河', '2019-03-05 10:14:27'),

(5, '河南', '新乡', '2019-03-05 10:14:27'),

(6, '河南', '濮阳', '2019-03-05 10:14:27'),

(7, '河南', '焦作', '2019-03-05 10:14:27'),

(8, '河南', '鹤壁', '2019-03-05 10:14:27'),

(9, '河南', '开封', '2019-03-05 10:14:27');

```

查询表中的数据:

```sql

SELECT * FROM chengshi;

```

3. 设置chengshi字段为唯一索引

现在我们需要为chengshi字段设置唯一性约束,可以通过添加唯一索引的方式实现:

```sql

ALTER TABLE `test`.`chengshi`

ADD UNIQUE INDEX `chengshi` (`chengshi`);

```

4. 验证唯一性约束

接下来我们尝试对表中的数据进行一些操作,看看唯一性约束是否生效:

1. 尝试将id为1的城市修改为"郑州",会报错,因为"郑州"已经存在了:

```sql

UPDATE chengshi SET chengshi'郑州' WHERE id1;

```

2. 尝试插入一个新的"安阳"城市,也会报错,因为"安阳"已经存在:

```sql

INSERT INTO chengshi(shengfen,chengshi)VALUES('河南','安阳');

```

综上所述,我们成功为chengshi字段设置了唯一性约束,在对表数据进行操作时,就不会出现重复数据的情况了。希望这些经验对你学习MySQL有所帮助,欢迎点赞收藏!

如何设置MySQL表字段的唯一性

1. 在创建表时,为需要设置唯一性的字段添加UNIQUE关键字,如:

```sql

CREATE TABLE `chengshi` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`shengfen` varchar(10) DEFAULT NULL,

`chengshi` varchar(10) UNIQUE DEFAULT NULL,

`shijian` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

PRIMARY KEY (`id`)

) ENGINEInnoDB AUTO_INCREMENT10 DEFAULT CHARSETutf8;

```

2. 对于已经创建好的表,可以使用ALTER TABLE语句添加唯一性索引:

```sql

ALTER TABLE `test`.`chengshi`

ADD UNIQUE INDEX `chengshi` (`chengshi`);

```

3. 验证唯一性约束:

- 尝试更新重复数据会报错

- 尝试插入重复数据也会报错

通过以上步骤,就可以很方便地为MySQL表的字段设置唯一性约束,避免出现重复数据的情况。希望这些经验对你学习MySQL有所帮助,欢迎点赞收藏!

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。