У меня есть ограничение внешнего ключа (не каскадное). У идентификатора есть внешний ключ, который связывает его с другой таблицей INNODB.Обе таблицы имеют int (11.)
Если я выполню этот запрос в консоли
insert into TABLE1(ID)values('5'); -success
php:
Попытка # 1
$id=5;
mysql_query("insert into TABLE1(ID)values('$id')"); -nothing happens
Попытка # 2
$id=5;
mysql_query("insert into TABLE1(ID)values('$id')"); -all existing rows become 5.
Если я уберу ограничение, оно будет нормально работать в php.Что может быть причиной этого?
СТРУКТУРА ТАБЛИЦЫ:
CREATE TABLE `table1` (
`ID` int(11) NOT NULL,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
CONSTRAINT `FK_ID` FOREIGN KEY (`ID`) REFERENCES `table2` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;
CREATE TABLE `table2` (
`ID` int(11) NOT NULL,
`c` int(11) DEFAULT NULL,
`d` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;
Содержимое таблицы 2 (относительно внешнего ключа таблицы 1)
ТАБЛИЦА 2
ID
1
2
3
4
5
6
7
8
ТАБЛИЦА 1 (после второй попытки вставки)
ID
5
5
5
5
5
5
5
5
5