2011-07-22 2 views
0

J'ai utilisé pour empêcher les chaînes vides pour un champ dans InterBase en définissant un fichier à null mais dans Firebird, il est différent du type d'utilisateur quelque chose dans le fichier puis enregistrez puis supprimez cette chaîne le fiel sera stocker la chaîne vide non null et mettre le champ à aucune null n'empêchera pas cette actionChaîne vide et vide dans Firebird

Y at-il un moyen d'empêcher l'utilisateur d'entrer la chaîne vide du côté de base de données?

grâce

Répondre

0

Vous pouvez utiliser ce déclencheur comme

CREATE OR ALTER TRIGGER YOUR_TABELE_BIU0 FOR YOUR_TABELE 
ACTIVE BEFORE INSERT OR UPDATE POSITION 0 
AS 
begin 
    IF (CHAR_LENGTH(new.YOURFIELD)=0) THEN 
    exception E_NOT_EMPTY 'field can not be empty'; 
end 
2

Il suffit d'ajouter chèque comme ceci:

CREATE TABLE test (
    f varchar(200), 
    CHECK (f > '') 
) 

Pas NULLs ou des chaînes vides ne passeront pas ce contrôle.

+1

Pour empêcher la valeur 'NULL', une contrainte' NOT NULL' serait nécessaire. –

+0

J'ai vérifié contre FB 2.5 et f <> '' exclut également les valeurs NULL –