MySQL约束不工作-错误代码#1452

MySQL约束不工作-错误代码#1452,mysql,sql,constraints,Mysql,Sql,Constraints,整整一天,我都在努力让这场冲突继续下去 所涉及表格的代码为: CREATE TABLE IF NOT EXISTS `GEBRUIKER` ( `GEBRUIKERSNR` varchar(5) NOT NULL, `VOORNAAM` text, `TUSSENVOEGSEL` text, `ACHTERNAAM` text NOT NULL, `GESLACHT` BOOLEAN, `WACHTWOORD` text NOT NULL, `GEB_DATUM` DATE, `E-MAIL`

整整一天,我都在努力让这场冲突继续下去

所涉及表格的代码为:

CREATE TABLE IF NOT EXISTS `GEBRUIKER` 
(
`GEBRUIKERSNR` varchar(5) NOT NULL,
`VOORNAAM` text,
`TUSSENVOEGSEL` text,
`ACHTERNAAM` text NOT NULL,
`GESLACHT` BOOLEAN,
`WACHTWOORD` text NOT NULL,
`GEB_DATUM` DATE,
`E-MAIL` text NOT NULL,
`TELEFOON` INT(10),
`STRAAT` text,
`HUISNUMMER` INT(3),
`POSTCODE` text,
`WOONPLAATS` text,      

PRIMARY KEY (`GEBRUIKERSNR`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Gegevens worden uitgevoerd voor tabel `GEBRUIKERS`
--

INSERT INTO `GEBRUIKER` (`GEBRUIKERSNR`, `VOORNAAM`, `TUSSENVOEGSEL`, `ACHTERNAAM`,     `GESLACHT`, `WACHTWOORD`, `GEB_DATUM`, `E-MAIL`, `TELEFOON`, `STRAAT`, `HUISNUMMER`, `POSTCODE`, `WOONPLAATS`) VALUES

(99999, 'An', NULL, 'Oniem', 'm', 'anoniem', 1991-12-13, 'anoniem@anoniem.net', '0612345678', 'anoniemstraat', '01', '0001 AN', 'Anoniemville');
以及:

我创建的约束的代码是:

ALTER TABLE `AFSPRAAK`
ADD CONSTRAINT `afspraak_ibfk_2` FOREIGN KEY (`GEBRUIKERSNR_VAN`) REFERENCES `GEBRUIKER` (`GEBRUIKERSNR`) ON DELETE NO ACTION ON UPDATE NO ACTION,
ADD CONSTRAINT `afspraak_ibfk_1` FOREIGN KEY (`GEBRUIKERSNR_NAAR`) REFERENCES `GEBRUIKER` (`GEBRUIKERSNR`) ON DELETE NO ACTION ON UPDATE NO ACTION; 
从PHPMyAdmin我得到了:

ERROR    
SQL-query:

ALTER TABLE  `AFSPRAAK` ADD CONSTRAINT  `afspraak_ibfk_2` FOREIGN KEY (  `GEBRUIKERSNR_VAN` ) REFERENCES  `GEBRUIKER` (  `GEBRUIKERSNR` ) ON DELETE NO ACTION ON UPDATE NO ACTION ,
ADD CONSTRAINT  `afspraak_ibfk_1` FOREIGN KEY (  `GEBRUIKERSNR_NAAR` ) REFERENCES  `GEBRUIKER` (  `GEBRUIKERSNR` ) ON DELETE NO ACTION ON UPDATE NO ACTION ;


MySQL reports: Documentation

#1452 - Cannot add or update a child row: a foreign key constraint fails (`dateos`.`#sql-1684_68`, CONSTRAINT `afspraak_ibfk_2` FOREIGN KEY (`GEBRUIKERSNR_VAN`) REFERENCES `gebruiker` (`GEBRUIKERSNR`) ON DELETE NO ACTION ON UPDATE NO ACTION) 

我现在该怎么办?还有,为什么不工作?

您需要在外键
上创建
索引
es
列:

INDEX (GEBRUIKERSNR_VAN),
INDEX (GEBRUIKERSNR_NAAR)
以及您的
外键
约束:


看看sqlfiddle,它喊道,不能将char插入Boolean,我将“Boolean”改为tinyint(1),tinyint的值为“Ý”。我仍然有相同的错误代码。我真愚蠢,在一个字母里填上一个数字。但是,仍然不起作用……这很不幸地导致了另一个错误:
“#1064-您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第18行的“INDEX(GEBRUIKERSNR_VAN)、INDEX(GEBRUIKERSNR_NAAR))ENGINE=InnoDB DEFAULT”附近使用的正确语法。”
@Quinten05您是否将
放在这里->
主键(datenumer),
INDEX (GEBRUIKERSNR_VAN),
INDEX (GEBRUIKERSNR_NAAR)
CREATE TABLE IF NOT EXISTS `GEBRUIKER` 
(
  `GEBRUIKERSNR` varchar(5) NOT NULL,
  `VOORNAAM` text,
  `TUSSENVOEGSEL` text,
  `ACHTERNAAM` text NOT NULL,
  `GESLACHT` BOOLEAN,
  `WACHTWOORD` text NOT NULL,
  `GEB_DATUM` DATE,
  `E-MAIL` text NOT NULL,
  `TELEFOON` INT(10),
  `STRAAT` text,
  `HUISNUMMER` INT(3),
  `POSTCODE` text,
  `WOONPLAATS` text,

  PRIMARY KEY (`GEBRUIKERSNR`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE IF NOT EXISTS `AFSPRAAK`
(
  `DATENUMMER` int(10) NOT NULL,
  `GEBRUIKERSNR_VAN` varchar(5) NOT NULL,
  `GEBRUIKERSNR_NAAR` varchar(5) NOT NULL,
  `ACCEPTATIE` BOOLEAN,
  `BERICHT` text,
  `TIJDSTIP` DATE,
  `LOCATIE` text,

  PRIMARY KEY (`DATENUMMER`),
  INDEX (GEBRUIKERSNR_VAN),
  INDEX (GEBRUIKERSNR_NAAR)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `AFSPRAAK`
  ADD CONSTRAINT `afspraak_ibfk_2` 
    FOREIGN KEY (`GEBRUIKERSNR_VAN`) 
    REFERENCES `GEBRUIKER` (`GEBRUIKERSNR`) 
        ON DELETE NO ACTION ON UPDATE NO ACTION,
  ADD CONSTRAINT `afspraak_ibfk_1` 
    FOREIGN KEY (`GEBRUIKERSNR_NAAR`) 
    REFERENCES `GEBRUIKER` (`GEBRUIKERSNR`) 
      ON DELETE NO ACTION ON UPDATE NO ACTION;