English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
AUTO INCREMENT (croissance automatique) génère un nombre unique lors de l'insertion d'un nouveau record dans la table.
PostgreSQL utilise des séries pour identifier la croissance automatique des champs, les types de données sont smallserial, serial et bigserial. Ces attributs sont similaires à l'attribut AUTO_INCREMENT pris en charge par la base de données MySQL.
Voici la commande pour définir la croissance automatique avec MySQL :
CREATE TABLE IF NOT EXISTS `w3codebox_tbl`( `w3codebox_id` INT UNSIGNED AUTO_INCREMENT, `w3codebox_title` VARCHAR(100) NOT NULL, `w3codebox_author` VARCHAR(40) NOT NULL, `submission_date` DATE, PRIMARY KEY ( `w3codebox_id)` )ENGINE=InnoDB DEFAULT CHARSET=utf8;
MySQL utilise l'attribut AUTO_INCREMENT pour identifier la croissance automatique des champs.
PostgreSQL utilise des séries pour identifier la croissance automatique des champs :
CREATE TABLE w3codebox ( id serial NOT NULL, alttext text, imgurl text )
Portée de SMALLSERIAL、SERIAL et BIGSERIAL :
Type pseudo | Taille de stockage | Portée |
---|---|---|
SMALLSERIAL | 2octets | 1 à 32,767 |
SERIAL | 4octets | 1 à 2,147,483,647 |
BIGSERIAL | 8octets | 1 à 922,337,2036,854,775,807 |
SERIAL Type de données syntaxe de base如下:
CREATE TABLE tablename ( colname SERIAL );
Assumons que nous devons créer une table COMPANY et créer les champs suivants :
w3codeboxdb=# CREATE TABLE COMPANY ( ID SERIAL PRIMARY KEY, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL );
Maintenant, insérez quelques enregistrements dans la table :
INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ( 'Paul', 32, 'California', 20000.00 ); INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ('Allen', 25, 'Texas', 15000.00 ); INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ('Teddy', 23, 'Norway', 20000.00 ); INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ( 'Mark', 25, 'Rich-Mond ', 65000.00 ); INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ( 'David', 27, 'Texas', 85000.00 ); INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ( 'Kim', 22, 'South-Hall', 45000.00 ); INSERT INTO COMPANY (NAME,AGE,ADDRESS,SALARY) VALUES ( 'James', 24, 'Houston', 10000.00 );
Voir les enregistrements de la table COMPANY tels que suit :
id | name | age | address | salary ----+-------+-----+------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall | 45000 7 | James | 24 | Houston | 10000