/ / błąd tworzenia tabeli na moim DB - mysql, sql

błąd tworzenia tabeli na moim DB - mysql, sql

Próbuję utworzyć tabelę odwołującą się do innej tabeli w moim db, jednak otrzymuję ten błąd.

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "UInt32 PRIMARY KEY, name VARCHAR(20), handle VARCHAR(20), countryName VARCHAR(20" at line 1

Spojrzałem na błąd nr 1064 na mySQL strona refrence, ale jej błąd wartości vuage tylko podając zarys swojej struktury.

 Error: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR)

Message: %s near "%s" at line %d

jest to kod, który próbowałem wykonać

CREATE TABLE User (userID UInt32 PRIMARY KEY, name VARCHAR(20), handle VARCHAR(20), countryName VARCHAR(20) references Countries(SID))engine=innodb;

Tabela krajów została już utworzona, więc nie jestem całkowicie pewien, co powoduje problem

jakakolwiek pomoc byłaby bardzo doceniana.

nie w ten sposób zdefiniowałem kraje

CREATE TABLE Countries (countryName VARCHAR(20) PRIMARY KEY)engine=innodb;

Odpowiedzi:

1 dla odpowiedzi № 1

ZAKTUALIZOWANA odpowiedź:

Przeniesienie definicji ograniczenia z definicji tabeli pomogło w wyizolowaniu problemu:

CREATE TABLE User(
userID UInt32 PRIMARY KEY
,name VARCHAR(20)
,handle VARCHAR(20)
,countryName VARCHAR(20)
)engine=innodb;


ALTER TABLE user ADD CONSTRAINT user_country_name_fk FOREIGN KEY(countryName) REFERENCES Countries(SID);

Niepowodzenie tworzenia tabeli spowodowane było używaniem UInt32 typ danych. Zmienić na inttworzenie tabel zakończyło się powodzeniem.

Ograniczenie klucza obcego odnosiło się do niewłaściwej kolumny w Countries. Chodziło o SID ale potrzebne do odniesienia countryName.