Schrift
[thread]11099[/thread]

NOT NULL PRIMARY KEY



<< >> 6 Einträge, 1 Seite
RalphFFM
 2008-01-05 12:56
#104420 #104420
User since
2006-11-16
258 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

weiß jemand zufällig, ob "PRIMARY KEY" automatisch auch ein "NOT NULL" beinhaltet?
Sinn würde es ja machen, weil NULL kann ja nicht Key sein.
Oder meine Frage mit anderen Worten: Ist "NOT NULL PRIMARY KEY" dasselbe wie "PRIMARY KEY"?

Gruß, Ralph
renee
 2008-01-05 13:03
#104422 #104422
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du *nicht* NOT NULL schreibst, wird das System vermutlich meckern, weil PRIMARY KEY nicht NULL sein darf. Soweit ich weiß, beinhaltet "PRIMARY KEY" *nicht* automatisch "NOT NULL", sondern Du musst es ausdrücklich hinschreiben...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Froschpopo
 2008-01-05 13:06
#104423 #104423
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Der Primärschlüssel muss eindeutig sein, das bedeutet ja schon, dass wenn er NULL wäre, er es nur einmal sein dürfte.
Relais
 2008-01-05 13:20
#104424 #104424
User since
2003-08-06
2244 Artikel
ModeratorIn
[Homepage] [default_avatar]
Froschpopo+2008-01-05 12:06:17--
Der Primärschlüssel muss eindeutig sein, das bedeutet ja schon, dass wenn er NULL wäre, er es nur einmal sein dürfte.


Jein. Es bedeutet, daß er nicht da ist.
Erst denken, dann posten --
26. Deutscher Perl- u. Raku -Workshop 15. bis 17.04.2024 in Frankfurt/M.

Winter is Coming
murphy
 2008-01-05 17:16
#104437 #104437
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Froschpopo+2008-01-05 12:06:17--
Der Primärschlüssel muss eindeutig sein, das bedeutet ja schon, dass wenn er NULL wäre, er es nur einmal sein dürfte.


Das ist schlicht falsch. SQL hat eine ternäre Logik und NULL ist dabei so etwas wie ein Mittelding zwischen wahr und falsch. Das bedeutet insbesondere, dass NULL = NULL nicht etwa wahr sein muss, sondern NULL sein kann!

Auch ein eindeutiger Schlüssel kann daher theoretisch beliebig oft NULL sein. Es mag allerdings sein, dass das nicht bei jeder Datenbank möglich ist. Überhaupt muss man mit NULL bei SQL etwas vorsichtig sein, weil verschiedene Datenbanken mit unter ihre eigenen Vorstellungen haben, wie dieser Wert zu behandlen ist. Eine brauchbare Übersicht findet sich zum Beispiel hier:
NULL Handling (aus der Dokumentation zu SQLite3).
When C++ is your hammer, every problem looks like your thumb.
Spieler
 2008-01-06 01:32
#104441 #104441
User since
2007-09-24
70 Artikel
BenutzerIn
[default_avatar]
Hallo,

hier z.B. Postgres Doku:

Code: (dl )
The primary key constraint specifies that a column or columns of a table may contain only unique (non-duplicate), nonnull values. Technically, PRIMARY KEY is merely a combination of UNIQUE and NOT NULL, but identifying a set of columns as primary key also provides metadata about the design of the schema, as a primary key implies that other tables may rely on this set of columns as a unique identifier for rows. 


Grüße, Christoph
<< >> 6 Einträge, 1 Seite



View all threads created 2008-01-05 12:56.