AUTO_INCREMENT lors de la définition de la colonne
CREATE TABLE etudiant (
etud_id INT AUTO_INCREMENT PRIMARY KEY,
etud_nom VARCHAR(50) NOT NULL,
etud_prenom VARCHAR(35) NOT NULL);
SERIAL en tant qu'alias pour BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUESERIAL associé à une clé primaire, il faut utiliser le type BIGINT UNSIGNED pour typer les clés étrangères pointant dessus.DEFAULT et de la fonction nextval()SERIAL : génère une séquence dont le nom est de la forme nomTable_nomColonne_seq, automatise l'attribution d'une nouvelle cléCREATE TABLE etudiant (
etud_id SERIAL PRIMARY KEY,
-- équivalent à :
-- etud_id int DEFAULT nextval('etudiant_etud_id_seq')
etud_nom VARCHAR(50) NOT NULL,
etud_prenom VARCHAR(35) NOT NULL);
--NOTICE: CREATE TABLE will create implicit sequence "etudiant_etud_id_seq" for serial column "etudiant.etud_id"
--NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "etudiant_pkey" for table "etudiant"
CREATE SEQUENCE seq_etudiant;
CREATE TABLE etudiant (
etud_id INTEGER DEFAULT seq_etudiant.nextval PRIMARY KEY,
etud_nom VARCHAR(50) NOT NULL,
etud_prenom VARCHAR(35) NOT NULL);
GENERATED [ALWAYS | BY DEFAULT] AS IDENTITYALWAYS impose l'automatisation systématique de la valeur de la colonneBY DEFAULT autorise l'insertion manuelle de la valeur de la colonneCREATE TABLE Professeur (
prof_id NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
prof_nom VARCHAR(30) NOT NULL,
prof_prenom VARCHAR(20) NOT NULL,
prof_tel CHAR(10),
prof_adresse VARCHAR(80),
prof_statut VARCHAR(10) NOT NULL
CHECK (prof_statut IN ('MCF', 'PU', 'PRAG', 'ATER'))
);