Ankündigung

Einklappen
Keine Ankündigung bisher.

kann keine Foreign Key Anlegen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • kann keine Foreign Key Anlegen

    Hallo

    ich habe ein Problem mit dem Foreign Key. Ich benutze MySQl 4.1

    Hier einmal das SQL Skript.

    CREATE TABLE `coupon` (
    `CouponID` bigint(20) NOT NULL auto_increment,
    `CouponNr` varchar(4) NOT NULL default '',
    `CouponName` varchar(30) default NULL,
    `MandantID` bigint(20) NOT NULL default '0',
    `AngenommenerResponce` varchar(255) default NULL,
    `KurzBeschreibung` varchar(255) default NULL,
    `Beschreibung` text,
    `AnsprechPartner` text,
    `EinloeseMechanik` varchar(255) default NULL,
    `KundenVorteil` varchar(100) default NULL,
    `GueltigkeitsStart` date default '0000-00-00',
    `GueltigkeitsEnde` date default '0000-00-00',
    `AktionsID` bigint(20) NOT NULL default '0',
    `LeistungsPartnerID` bigint(20) NOT NULL default '0',
    `AngelegtVon` bigint(20) default NULL,
    `ErzeugtAm` datetime default NULL,
    `LetzteAenderungVon` datetime default NULL,
    `Freitext` text,
    `AnmeldePflichtig` tinyint(1) NOT NULL default '1',
    `Status` tinyint(1) NOT NULL default '1',
    `CouponTypID` int(11) NOT NULL default '-1',
    `NotwendigeCoinPunkte` int(11) default '0',
    `NotwendigeCentPunkte` int(11) default '0',
    `ReinerCentWert` int(11) default '0',
    `AnzahlInit` int(11) default '0',
    `AnzahlAktuell` int(11) default '0',
    `ProduktNummer` int(11) default NULL,
    `CouponURL` text,
    `Land` char(3) default NULL,
    `VerfuegbarNachZahlungInMin` int(11) default NULL,
    `SoftwareURL` text,
    `PreviewURL` text,
    `MaxAufrufeAnzahl` int(11) default NULL,
    `DeliveryURL` text,
    `ZusatzKommentar1` text,
    `ZusatzKommentar2` text,
    `ZusatzKommentar3` text,
    `CouponAktiv` tinyint(4) NOT NULL default '0',
    `CouponBestellbar` tinyint(2) NOT NULL default '1',
    `Sortierung` int(6) NOT NULL default '500',
    `VersandTemplateID` bigint(20) default '0',
    `VersandTyp` bigint(20) default '0',
    PRIMARY KEY (`CouponID`),
    UNIQUE KEY `CouponID` (`CouponID`),
    KEY `LeistungsPartnerID` (`LeistungsPartnerID`,`MandantID`,`CouponNr`),
    KEY `CouponNr` (`CouponNr`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=45 ;

    CREATE TABLE couponpreise
    (
    CouponID bigint(20) NOT NULL,
    notwendigeCentPunkte int(11),
    notwendigeCoinPunkte int(11),
    AnzahlInit int(11),
    VK decimal(8,2),
    AnzahlAktuell int(11),
    GueltigkeitsStart datetime,
    GueltigkeitsEnde datetime,
    DomainID int(11) NOT NULL,
    WaehrungsID int(11) NOT NULL,
    CONSTRAINT PK_couponpreise PRIMARY KEY (CouponID, WaehrungsID)
    );

    ALTER TABLE couponpreise ADD CONSTRAINT hat2 FOREIGN KEY (
    CouponID
    )
    REFERENCES coupon (
    CouponID
    );

    Nun kommt der folgende Fehler

    SQL-Befehl:

    ALTER TABLE couponpreise ADD CONSTRAINT hat2 FOREIGN KEY ( CouponID ) REFERENCES coupon( CouponID )
    MySQL meldet:

    #1005 - Can't create table '.\test\#sql-23c_100.frm' (errno: 150)

    Was ist daran falsch?? Vielen Dank!


  • #2
    FOREIGN KEY Constraints sind nur bei "InnoDB" machbar:

    http://dev.mysql.com/doc/refman/5.0/...nstraints.html

    15.6.4. FOREIGN KEY Constraints

    InnoDB also supports foreign key constraints. The syntax for a foreign key constraint definition in InnoDB looks like this: ...


    http://dev.mysql.com/doc/refman/5.0/...eign-keys.html

    3.6.6. Using Foreign Keys

    In MySQL, InnoDB tables support checking of foreign key constraints. See Chapter 15, The InnoDB Storage Engine. See also Section 1.8.5.5, “Foreign Keys”.

    ~dilemma~

    Kommentar

    Lädt...
    X