Database
 sql >> Baza danych >  >> RDS >> Database

Jak sprawić, by kolumna była unikalna w SQL?

Problem:

Chcesz, aby dana kolumna była unikalna w danej tabeli w bazie danych.

Przykład:

Chcielibyśmy, aby kolumna name unikalny w tabeli product . Poniższe zapytanie przedstawia jeden ze sposobów na zrobienie tego.

Rozwiązanie 1

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

Dyskusja:

W tym przykładzie dana kolumna (kolumna name ) został nadany unikatowy przez dodanie klauzuli UNIQUE na końcu kolumny definicji (name VARCHAR(100) UNIQUE ). Ta nowa tabela (w naszym przykładzie:product ) będzie zawierać kolumnę (w naszym przykładzie:name ), który przechowuje unikalne wartości w wierszach.

Rozwiązanie 2:

ALTER TABLE product 
ADD CONSTRAINT UQ_product_name UNIQUE(name);

Dyskusja:

W tym przykładzie tabela product już istnieje. Chcemy zmodyfikować tę tabelę i dodać unikalne ograniczenie do kolumny name . Jest to możliwe za pomocą ALTER TABLE klauzula. Najpierw piszemy ALTER TABLE, następnie podajemy nazwę tabeli (w naszym przykładzie:product ), a następnie dodajemy klauzulę ADD CONSTRAINT z nazwą unikalnego ograniczenia (w naszym przykładzie:UQ_product_name ). Po nim następuje słowo kluczowe UNIQUE z kolumną/kolumnami (w naszym przykładzie jest to kolumna:name ) w nawiasach.

Możesz także utworzyć wielokolumnowe ograniczenie unikatowe. Oto jak:

Rozwiązanie 3:

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

Dyskusja:

W tym przykładzie produkt tabeli jest zmieniany za pomocą ALTER TABLE klauzulę i klauzulę ADD CONSTRAINT z nazwą ograniczenia przez unikalność (w naszym przykładzie:UQ_product_name_producer ), po którym następuje UNIQUE słowo kluczowe z listą kolumn (w naszym przykładzie mamy dwie kolumny:name i producer ) w nawiasach.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Testowanie obciążenia sieciowego za pomocą iPerf

  2. Jak zmienić kolumnę z NULL na NOT NULL?

  3. Zrozumienie utraty zdarzeń z rozszerzonymi zdarzeniami

  4. Korzystanie z Salesforce SOQL z systemu Linux

  5. Dedykowana procedura składowana umożliwiająca uzyskanie najnowszego stanu kopii zapasowych bazy danych