Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Create Table mit Check

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Asura, 11 Januar 2016.

  1. Asura

    Asura Benutzer

    Guten Tag,
    ich muss eine Tabelle erstellen. Zwei Attribute haben hier besondere Hinweise.
    Die Niederlassungsnummer sind nur Werte zwischen 1-9999 erlaubt.
    Und die Postleitzahl darf an jeder Stelle nur die Ziffern 0,9 haben.
    Die Dateitypen sind hierbei vorgeschrieben und müssen eingehalten werden.

    Ich habe hier ein Versuch, dieser funktioniert leider nicht.

    Code:
    
    CREATE TABLE IF NOT EXISTS `niederlassung` (
    
      `nnr`     int(4)                   COMMENT 'Niederlassungsnummer'   CHECK (`nnr` BETWEEN 1 AND 9999),
      `name`    varchar(10)  NOT NULL COMMENT 'Name der Niederlassung'                                  ,
      `plz`     varchar(5)               COMMENT 'PLZ der Niederlassung'  CHECK (ISNUMERIC(`plz`)==1),
      `ort`     varchar(12)  NOT NULL COMMENT 'Ort der Niederlassung',
      `adresse` varchar(25)  NOT NULL COMMENT 'Adresse der Niederlassung'
    
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    
    
    Ich würde mich freuen, wenn Sie mir helfen könnten.
    Ich benutze hier für phpmyadmin.

    MfG
    Asura
     
  2. akretschmer

    akretschmer Datenbank-Guru

    MySQL akzeptiert die Syntax von Check-Constraints, erzwingt diese aber nicht. Wenn Du das willst, so nutze eine bessere DB. Meine Empfehlung des Tages: PostgreSQL.
     
  3. Asura

    Asura Benutzer

    Ist diese Syntax zumindest korrekt, auch wenn die DB diese nicht erzwingt?
    Geht mir hierbei vielmehr um die Korrektheit, als um die komplette Funktionsweise in meiner DB.
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Ob die Syntax korrekt ist merkst Du, wenn Du den Befehl an die DB schickst.
     
  5. ukulele

    ukulele Datenbank-Guru

    Die Syntax sieht auch richtig aus ich weiß allerdings nicht ob die für COMMENT richtig ist das nutze ich nicht. Du kannst das ganze auch nachträglich per ALTER TABLE xy ADD machen, dann wird dein Constraint gesondert akzeptiert.

    Was die Durchsetzung des CONSTRAINTs angeht hat aktretschmer natürlich recht, wenn man das praktisch anwenden will muss man es per Trigger lösen. CHECK constraint in MySQL is not working
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden