Norbert: Definition von 'check' gesucht

Hallo,

das folgende CREATE-Statement kapiere ich nicht wirklich

    create table irgendwas (  
        irID   integer not null primary key,  
        irType integer not null  
        check (irType = 100100000 or irType = 100200000 or  
               irType = 100300000 or irType = 100400000 or  
               irType = 100500000 or irType = 100600000 or  
               irType = 100700000 or irType = 100800000 or  
               irType = 1)  
    ) TYPE=InnoDB CHARACTER SET utf8;

Kann mir bitte jemand die Funktion "check" erlaeutern oder einen hilfreichen Link
posten. Und da die Daten von 'InnoDB' nach 'MyISAM' portieren werden, noch die Frage:
Funktioniert "check" unter MyISAM ueberhaupt?

Gruss und Dank
Norbert

  1. Hallo Norbert,

    check (irType = 100100000 or irType = 100200000 or
                   irType = 100300000 or irType = 100400000 or
                   irType = 100500000 or irType = 100600000 or
                   irType = 100700000 or irType = 100800000 or
                   irType = 1)

    ich persönlich bevorzuge den IN-Operator gegenüber solchen OR-Verknüpfungen :-)

    Kann mir bitte jemand die Funktion "check" erlaeutern oder einen hilfreichen Link
    posten.

    http://www.postgresql.org/files/documentation/books/pghandbuch/html/sql-createtable.html
    http://dev.mysql.com/doc/refman/5.0/en/create-table.html

    jeweils nach "check" suchen :-) Die PostgreSQL-Doku sagt Dir, was CHECK
    bewirken kann, den relevanten Satz aus der MySQL-Doku zitiere ich für Dich:

    <zitat>
        The CHECK clause is parsed but ignored by all storage engines.
    </zitat>

    Und da die Daten von 'InnoDB' nach 'MyISAM' portieren werden, noch die Frage:
    Funktioniert "check" unter MyISAM ueberhaupt?

    Funktioniert "check" unter MySQL überhaupt?
    Mit diesem CREATE-TABLE-Statement ist jedoch dokumentiert, welche Werte die
    Spalte irType nur annehmen sollte.

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzenz,

      ich persönlich bevorzuge den IN-Operator gegenüber solchen OR-Verknüpfungen :-)

      stimmt,
      wobei ich nicht abzuschaetzen wage, welche Variante schneller ist.
      In einem anderen Zusammenhang wird OR als optimalste Loesung angegeben.

      Und da die Daten von 'InnoDB' nach 'MyISAM' portieren werden, noch die Frage:
      Funktioniert "check" unter MyISAM ueberhaupt?

      na-ja,
      zumindestens wirft es keinen Fehler ...

      Also alles noch Zukunftsmusike ... ;-)

      Gruss und Dank
      Norbert