AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Not Null ist leer?

Ein Thema von Rüdiger · begonnen am 14. Jun 2002 · letzter Beitrag vom 15. Jun 2002
Antwort Antwort
Rüdiger

Registriert seit: 14. Jun 2002
3 Beiträge
 
#1

Not Null ist leer?

  Alt 14. Jun 2002, 21:38
Moin ))

Ich habe ein Feld in der Interbase Tabelle

name varchar 30 not null

warum werden in der Tabelle auch Datensätze erzeugt ohne name (feld Name ist leer)?

wie kann ich das vermeiden?

Rüdiger
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
6.015 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 14. Jun 2002, 21:50
Hallo Rüdiger,

NOT NULL bedeutet ja nur, dass das Feld nicht leer sein darf. Ein String aus Leerzeichen (blanks) ist aber ein gültiget Wert. Du musst hier mir Check Constraints arbeiten:

Code:
CREATE TABLE
....
CHECK (TRIM(name) <> ''))
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Rüdiger

Registriert seit: 14. Jun 2002
3 Beiträge
 
#3
  Alt 14. Jun 2002, 22:00
@MrSpock: wie geht das genu?

Rüdiger
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
6.015 Beiträge
 
Delphi 2010 Professional
 
#4
  Alt 14. Jun 2002, 22:51
Hallo Rüdiger,

du kannst bei dem Script, mit dem du die Tabelle erstellt die CHECK Abfrage einfach der Felddefinition hinzufügen:

Code:
CREATE TABLE Adresse(
name varchar(30) not null CHECK(Name<>''),
strasse varchar(30))
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Rüdiger

Registriert seit: 14. Jun 2002
3 Beiträge
 
#5
  Alt 15. Jun 2002, 00:38
Hallo MrSpock,

das geht nicht. In der Tabelle sind schon mehrere Datensätze vorhanden.

Warum benutzt man überhaupt not null, wenn CHECK reichen würde?

Ich verstehe das nicht.

Rüdiger
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
6.015 Beiträge
 
Delphi 2010 Professional
 
#6
  Alt 15. Jun 2002, 10:04
Hallo Rüdiger,

in dem Fall benutzt du ALTER TABLE wie folgt:

Code:
ALTER TABLE TestTab
ADD CONSTRAINT NameCheck CHECK(Name<>'')
NOT NULL und CHECK haben unteschiedliche Bedeutungen. Wenn du z.B. ein Zahlenfeld hast wird es noch deutlicher. Da kann man mit CHECK ein NOT NULL nicht nachbilden.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf