DEFAULT
est la valeur qui sera insérée en l'absence d'une valeur explicite dans une instruction d'insertion/mise à jour. Supposons que votre DDL n'ait pas le paramètre NOT NULL
contrainte :
ALTER TABLE tbl ADD COLUMN col VARCHAR(20) DEFAULT 'MyDefault'
Vous pourriez alors publier ces déclarations
-- 1. This will insert 'MyDefault' into tbl.col
INSERT INTO tbl (A, B) VALUES (NULL, NULL);
-- 2. This will insert 'MyDefault' into tbl.col
INSERT INTO tbl (A, B, col) VALUES (NULL, NULL, DEFAULT);
-- 3. This will insert 'MyDefault' into tbl.col
INSERT INTO tbl (A, B, col) DEFAULT VALUES;
-- 4. This will insert NULL into tbl.col
INSERT INTO tbl (A, B, col) VALUES (NULL, NULL, NULL);
Alternativement, vous pouvez aussi utiliser DEFAULT
en UPDATE
déclarations, selon le SQL-1992 standard :
-- 5. This will update 'MyDefault' into tbl.col
UPDATE tbl SET col = DEFAULT;
-- 6. This will update NULL into tbl.col
UPDATE tbl SET col = NULL;
Remarque : toutes les bases de données ne prennent pas en charge toutes ces syntaxes standard SQL. L'ajout du NOT NULL
provoquera une erreur avec les déclarations 4, 6
alors que 1-3, 5
sont toujours des déclarations valables. Donc pour répondre à votre question : Non, elles ne sont pas redondantes.