Próbuję utworzyć tabele dla bazy danych MySQL, ale mam pewne problemy z składnią. Wydawałoby się, że z jakiegoś powodu sprawdzanie składni różni się między tabelami. Podczas gdy mam wszystkie inne tabele do przejrzenia, tabela „stock” wydaje się nie działać, mimo że używa tych samych wzorców składni.
CREATE TABLE users (
user_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
username VARCHAR(30) NOT NULL,
password CHAR(41) NOT NULL,
date_joined DATETIME NOT NULL,
funds DOUBLE UNSIGNED NOT NULL,
PRIMARY KEY(user_id),
UNIQUE KEY(username)
);
CREATE TABLE owned_stocks (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id SMALLINT UNSIGNED NOT NULL,
paid_price DOUBLE UNSIGNED NOT NULL,
quantity MEDIUMINT UNSIGNED NOT NULL,
purchase_date DATETIME NOT NULL,
PRIMARY KEY(id)
);
CREATE TABLE tracking_stocks (
ticker VARCHAR(5) NOT NULL,
user_id SMALLINT UNSIGNED NOT NULL,
PRIMARY KEY(ticker)
);
CREATE TABLE stocks (
ticker VARCHAR(5) NOT NULL,
last DOUBLE UNSIGNED NOT NULL,
high DOUBLE UNSIGNED NOT NULL,
low DOUBLE UNSIGNED NOT NULL,
company_name VARCHAR(30) NOT NULL,
last_updated INT UNSIGNED NOT NULL,
change DOUBLE NOT NULL,
percent_change DOUBLE NOT NULL,
PRIMARY KEY(ticker)
);
Czy po prostu brakuje mi naprawdę oczywistego problemu składniowego?
BŁĄD:
#1064
— Wystąpił błąd w składni SQL; sprawdź instrukcję, która odpowiada Twojej wersji serwera MySQL, aby uzyskać odpowiednią składnię blisko 'zmiana DOUBLE NOT NULL, procent_zmiany DOUBLE NOT NULL, ostatnia
PODWÓJNE” w linii 4
2 odpowiedzi
Nazwa pola „stocks” „change” jest zastrzeżonym słowem mysql. Czy spróbować zastąpić ją inną nazwą pola?
Dla odniesienia: http://dev.mysql.com/doc/ refman/5.5/pl/słowa-zarezerwowane.html
Ponieważ zmiana jest słowem zastrzeżonym, unikaj jej za pomocą znaku wstecznego
`change` DOUBLE NOT NULL,
Lista zarezerwowanych słów MySQL
Podobne pytania
Nowe pytania
mysql
MySQL to darmowy system zarządzania relacyjnymi bazami danych (RDBMS) o otwartym kodzie źródłowym, który wykorzystuje język SQL (Structured Query Language). NIE UŻYWAJ tego znacznika dla innych baz danych, takich jak SQL Server, SQLite itp. Są to różne bazy danych, które używają własnych dialektów SQL do zarządzania danymi.