> For the complete documentation index, see [llms.txt](https://mun.gitbook.io/dbms/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mun.gitbook.io/dbms/sql/mysql-constraints/unique.md).

# UNIQUE

## Unique

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` CHAR(12) NOT NULL,
	`course_code` VARCHAR(40) NOT NULL UNIQUE,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
)
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL UNIQUE,
	`course_code` VARCHAR(7) NOT NULL UNIQUE,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);
SHOW INDEX FROM `course`;
```

## Unique

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	UNIQUE(`course_code`)
);
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	UNIQUE(`course_id`),
	UNIQUE(`course_code`)
);
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	UNIQUE(`course_id`, `course_code`)
);
SHOW INDEX FROM `course`;
```

## Unique Key

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	UNIQUE KEY(`course_code`)
);
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	UNIQUE KEY `uc_course_code`(`course_code`)
);
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	UNIQUE KEY `uc_course_id`(`course_id`),
	UNIQUE KEY `uc_course_code`(`course_code`)
);
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	UNIQUE KEY `uc_course_id_code`
	(`course_id`, `course_code`)
);
SHOW INDEX FROM `course`;
```

## Constraint Unique

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	CONSTRAINT UNIQUE(`course_code`)
);
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	CONSTRAINT `uc_course_code` UNIQUE (`course_code`)
);
SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	CONSTRAINT `uc_course_id` UNIQUE (`course_id`),
	CONSTRAINT `uc_course_code` UNIQUE (`course_code`)
);
SHOW INDEX FROM `course`;

```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5)),
	CONSTRAINT `uc_course_id_code` 
	UNIQUE (`course_id`, `course_code`)
);
SHOW INDEX FROM `course`;
```

## Alter Table + Unique

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD UNIQUE(`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD UNIQUE(`course_id`);
ALTER TABLE `course` ADD UNIQUE(`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD 
UNIQUE(`course_id`, `course_code`);

SHOW INDEX FROM `course`;
```

## Alter Table + Unique Key

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD 
UNIQUE KEY `uc_course_code` (`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD 
UNIQUE KEY `uc_course_id` (`course_id`);
ALTER TABLE `course` ADD 
UNIQUE KEY `uc_course_code` (`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD UNIQUE KEY 
`uc_course_id_code` (`course_id`, `course_code`);

SHOW INDEX FROM `course`;
```

## Alter Table + Constraint

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD 
CONSTRAINT UNIQUE (`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD CONSTRAINT 
`uc_course_code` UNIQUE (`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD CONSTRAINT 
`uc_course_id` UNIQUE (`course_id`);
ALTER TABLE `course` ADD CONSTRAINT 
`uc_course_code` UNIQUE (`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

ALTER TABLE `course` ADD CONSTRAINT `uc_course_id_code` 
UNIQUE (`course_id`, `course_code`);

SHOW INDEX FROM `course`;
```

## Create Unique Index

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

CREATE UNIQUE INDEX `uc_course_code` 
ON `course` (`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

CREATE UNIQUE INDEX `uc_course_id` 
ON `course` (`course_id`);
CREATE UNIQUE INDEX `uc_course_code` 
ON `course` (`course_code`);

SHOW INDEX FROM `course`;
```

```sql
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

CREATE UNIQUE INDEX `uc_course_id_code` 
ON `course` (`course_id`, `course_code`);

SHOW INDEX FROM `course`;
```

## Drop Index

```sql
DROP TABLE IF EXISTS `course`;
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL UNIQUE,
	`course_code` VARCHAR(7) NOT NULL UNIQUE,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

SHOW INDEX FROM `course`;
DROP INDEX `course_id` ON `course`;
SHOW INDEX FROM `course`;
DROP INDEX `course_code` ON `course`;
SHOW INDEX FROM `course`;
```

```sql
DROP TABLE IF EXISTS `course`;
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

CREATE UNIQUE INDEX `uc_course_id_code` 
ON `course` (`course_id`, `course_code`);

SHOW INDEX FROM `course`;
DROP INDEX `uc_course_id_code` ON `course`;
SHOW INDEX FROM `course`;
```

## Drop Index + Alter Table

```sql
DROP TABLE IF EXISTS `course`;
CREATE TABLE IF NOT EXISTS `course`(
	`course_id` INT(11) NOT NULL,
	`course_code` VARCHAR(7) NOT NULL,
	`course_title` VARCHAR(40) NOT NULL,
	`course_dept` VARCHAR(4) NOT NULL,
	`course_credit` FLOAT(3,1) 
	CHECK (`course_credit` IN (3.0, 1.5))
);

CREATE UNIQUE INDEX `uc_course_id` 
ON `course` (`course_id`);
CREATE UNIQUE INDEX `uc_course_code` 
ON `course` (`course_code`);

SHOW INDEX FROM `course`;
ALTER TABLE `course` DROP INDEX `uc_course_id`;
SHOW INDEX FROM `course`;
ALTER TABLE `course` DROP INDEX `uc_course_code`;
SHOW INDEX FROM `course`;
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://mun.gitbook.io/dbms/sql/mysql-constraints/unique.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
