Я хочу создать две таблицы. practice
имеет вложение AUTO_INCREMENT
и является PRIMARY KEY
. continued
имеет идентификатор continued_id
, который существует как FOREIGN KEY
, который ссылается на practice(user_id)
. Mysql выполняет код ниже в порядке до строки 19, где я получаю ошибку 1364, заявляя, что continued_id
не имеет значения по умолчанию.
Я в замешательстве. Я думал, что user_id
, который auto_increments, а это PK, будет иметь определяющее значение 1,2,3 ... Я думал, что continued_id
эквивалентен user_id
, и поэтому его значение по умолчанию равно 1? Возможно, я неправильно понимаю, как PK и FK действительно работают в sql?
Ошибка:
20:03:02 INSERT INTO continued(hobby) VALUES("Tennis") Error Code: 1364. Field 'continued_id' doesn't have a default value 0.000 sec
CREATE TABLE practice(
user_id INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
user_name VARCHAR(60) NOT NULL,
user_real_name VARCHAR(60) NOT NULL
);
CREATE TABLE continued(
continued_id INT NOT NULL,
FOREIGN KEY(continued_id)REFERENCES practice(user_id),
hobby VARCHAR(25) NOT NULL
);
INSERT INTO practice(user_name,user_real_name)
VALUES("KittenKing","Henry");
INSERT INTO practice(user_name,user_real_name)
VALUES("DogDictator","Mary");
INSERT INTO practice(user_name,user_real_name)
VALUES("HamsterHam","Denver");
INSERT INTO continued(hobby)
VALUES("Tennis");
INSERT INTO continued(hobby)
VALUES("Hockey");
INSERT INTO continued(hobby)
VALUES("Spear Hunting");
SELECT * FROM practice,continued;