Может кто-нибудь помочь мне с синтаксисом для CREATE TABLE? - PullRequest
0 голосов
/ 28 февраля 2020

Может кто-нибудь понять, почему это не работает. Нужно ли иметь определение для каждого столбца?

CREATE TABLE `wishlist` (
`wishlistID`,
`userID`,
`graveID`,
`graveyardID`,
PRIMARY KEY (`wishlistID`)
) ENGINE=InnoDB CHARSET=utf8;

Ответы [ 2 ]

2 голосов
/ 28 февраля 2020

Да, вы должны определить типы данных для каждого столбца в таблице. Например:

CREATE TABLE `wishlist` (
    `wishlistID` int(10) unsigned,
    `userID` int(10) unsigned not null,
    `graveID` smallint not null,
    `graveyardID` int(11),
    `description` varchar(255),
    `created_at` datetime,
PRIMARY KEY (`wishlistID`)
) ENGINE=InnoDB CHARSET=utf8;
1 голос
/ 28 февраля 2020

Да, вы должны объявить тип данных для каждого столбца.

Возможно, это поможет вам понять, что вы хотите использовать для типов данных. https://dev.mysql.com/doc/refman/8.0/en/creating-tables.html

Вы можете попробовать это, чтобы начать.

CREATE TABLE wishlist (
  wishlistID UNSIGNED INT NOT NULL AUTO_INCREMENT,
  userID UNSIGNED INT,
  graveID UNSIGNED INT,
  graveyardID UNSIGNED INT,
  PRIMARY KEY (wishlistID)
) ENGINE=InnoDB CHARSET=utf8;

Похоже, что каждый столбец является ссылкой (внешним ключом) на другую таблицу. Объяснение того, что вы, возможно, захотите узнать обо всех этих других таблицах, выходит за рамки ответа о переполнении стека.

...