sql >> Database >  >> RDS >> Database

Hoe maak je een primaire sleutel in SQL

Probleem:

U wilt een primaire sleutel maken voor een tabel in een database.

Voorbeeld:

We willen een primaire sleutel voor een tabel met de naam product .

Oplossing 1 (nieuwe tabel):

CREATE TABLE product (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL,
price DECIMAL(7,2)
);

Discussie:

Als u een nieuwe tabel wilt maken met een kolom die is gedefinieerd als de primaire sleutel, kunt u het trefwoord PRIMARY KEY gebruiken aan het einde van de definitie van die kolom. In ons voorbeeld maken we de tabel product met behulp van een CREATE TABLE clausule, met de namen van de kolommen en hun respectieve gegevenstypen tussen haakjes. We kiezen de kolom-ID als de primaire sleutel van deze tabel, dus we noemen PRIMARY KEY aan het einde van de definitie van deze kolom.

Houd er rekening mee dat u slechts één primaire sleutel voor een bepaalde tabel kunt maken.

Oplossing 2 (nieuwe tabel):

CREATE TABLE product (
name VARCHAR(100) NOT NULL,
producer VARCHAR(100) NOT NULL),
price DECIMAL(7,2),
PRIMARY KEY(name, producer)
);

Discussie:

Een andere manier om een ​​primaire sleutel te definiëren tijdens het maken van een nieuwe tabel is met een PRIMARY KEY clausule aan het einde van de kolomdefinities. In dit geval wijzen we een of meer kolommen toe als argument voor de PRIMARY KEY clausule; deze kolommen worden de primaire sleutel voor de tabel.

Merk op dat deze benadering primaire sleutels toestaat die met meerdere kolommen zijn gebouwd. In dit voorbeeld is de primaire sleutel voor de tabel product wordt gevormd door twee kolommen:name en producer .

Oplossing 3 (bestaande tabel):

ALTER TABLE product
ADD PRIMARY KEY (id);

Discussie:

Het is ook mogelijk om een ​​primaire sleutel te definiëren voor een bestaande tabel die nog geen primaire sleutel heeft.

Hier wordt de tabel gewijzigd met behulp van een ALTER TABLE clausule. De tabel (in ons voorbeeld product ) is genoemd naar het trefwoord ALTER TABLE , dan de ADD PRIMARY KEY clausule volgt met de naam van de kolom die als primaire sleutel moet worden gebruikt. Merk op dat de tabel al moet bestaan ​​voordat deze opdracht wordt uitgevoerd en dat de tabel niet al een primaire sleutel mag hebben.

Oplossing 4 (bestaande tabel, primaire sleutelbeperking):

ALTER TABLE product
ADD CONSTRAINT PK_product_id PRIMARY KEY (id);

Discussie:

Gebruik een query als deze als u een primaire sleutelbeperking voor een bestaande tabel een naam wilt geven. Hier, de primaire sleutelbeperking, PK_product_id , wordt gegenereerd uit de kolom id . Als u de naam van de beperking niet opgeeft, genereert de database een standaardnaam van de beperking (de naam verschilt per database).


  1. Wanneer de SQLiteOpenHelper onCreate methode wordt aangeroepen?

  2. MariaDB CURRENT_TIME() uitgelegd

  3. JSON_STORAGE_SIZE() - Vind de opslaggrootte van een JSON-document in MySQL

  4. Hoe relaties te creëren in MySQL