sql >> Database >  >> RDS >> Database

Hoe maak je een kolom uniek in SQL?

Probleem:

U wilt een bepaalde kolom uniek maken in een bepaalde tabel in een database.

Voorbeeld:

We willen de kolom name . maken uniek in de tabel product . De onderstaande vraag biedt een manier om dit te doen.

Oplossing 1

CREATE TABLE product (
id INT NOT NULL PRIMARY KEY,
name VARCHAR(100) UNIQUE, 
producer VARCHAR(100), 
category VARCHAR(100)
);

Discussie:

In dit voorbeeld een bepaalde kolom (de kolom name ) is uniek gemaakt door de clausule UNIQUE toe te voegen aan het einde van de definitiekolom (name VARCHAR(100) UNIQUE ). Deze nieuwe tabel (in ons voorbeeld:product ) zal de kolom bevatten (in ons voorbeeld:name ) die unieke waarden in rijen opslaat.

Oplossing 2:

ALTER TABLE product 
ADD CONSTRAINT UQ_product_name UNIQUE(name);

Discussie:

In dit voorbeeld de tabel product bestaat al. We willen deze tabel aanpassen en een unieke beperking toevoegen aan kolom name . Dit is mogelijk door gebruik te maken van de ALTER TABLE clausule. Eerst schrijven we ALTER TABLE, dan vermelden we de naam van de tabel (in ons voorbeeld:product ), en vervolgens voegen we de clausule toe ADD CONSTRAINT met de naam van de unieke beperking (in ons voorbeeld:UQ_product_name ). Dit wordt gevolgd door het trefwoord UNIQUE met kolom/kolommen (in ons voorbeeld is dit kolom:name ) tussen haakjes.

U kunt ook een unieke beperking met meerdere kolommen maken. Hier is hoe:

Oplossing 3:

ALTER TABLE product 
ADD CONSTRAINT UQ_product_name_producer UNIQUE(name, producer);

Discussie:

In dit voorbeeld wordt het tabelproduct gewijzigd met behulp van de ALTER TABLE clausule en de clausule ADD CONSTRAINT met de naam van de unieke beperking (in ons voorbeeld:UQ_product_name_producer ) gevolgd door de UNIQUE trefwoord met de lijst met kolommen (in ons voorbeeld zijn er twee kolommen:name en producer ) tussen haakjes.


  1. PostgreSQL:tabellen weergeven in PostgreSQL

  2. Een database verwijderen in cPanel

  3. PlanetScale &Vitess:referentiële integriteit met legacy Sharded-databases

  4. Hoe UTC naar lokale tijd te converteren in MySQL