← Tous les exercices
NOT NULL et valeur par défaut
Partie 3 · ★★
NOT NULL oblige une colonne à recevoir une valeur ; DEFAULT donne la valeur utilisée quand aucune n'est fournie à l'insertion. Les colonnes TEXT et BLOB de MySQL ne peuvent pas avoir de valeur par défaut.
Table Ballon : la taille est obligatoire, la couleur vaut 'rouge' par défaut. (Hors cours : MySQL en mode permissif remplacerait une taille absente par 0 ; SQLite refuse l'insertion, ce que le test vérifie.)
import sqlite3 con = sqlite3.connect(":memory:") con.execute("""CREATE TABLE Ballon ( taille INTEGER ___, couleur VARCHAR(40) ___ 'rouge' )""") con.execute("INSERT INTO Ballon(taille) VALUES (20)") couleur_defaut = con.execute("SELECT couleur FROM Ballon").fetchone()[0] try: con.execute("INSERT INTO Ballon(couleur) VALUES ('vert')") sans_taille = True except sqlite3.IntegrityError: sans_taille = False
Ctrl/⌘+Entrée