Что не так с этим оператором создания таблицы

Кто-нибудь знает, что не так с этим оператором create для mysql?

Обновлено: теперь в нем говорится, что ошибка близка: исправленный VARCHAR (20), paypal_accept TINYINT, pre_terminat 'в строке 4

Спасибо всем за помощь

Все еще ошибки после использования sql beautifier, хотя

CREATE TABLE AUCTIONS (
  ARTICLE_NO      VARCHAR(20),
  ARTICLE_NAME    VARCHAR(100),
  SUBTITLE        VARCHAR(20),
  CURRENT_BID     VARCHAR(20),
  START_PRICE     VARCHAR(20),
  BID_COUNT       VARCHAR(20),
  QUANT_TOTAL     VARCHAR(20),
  QUANT_SOLD      VARCHAR(20),
  START           DATETIME,
  ENDS            DATETIME,
  ORIGIN_END      DATETIME,
  SELLER_ID       VARCHAR(20),
  BEST_BIDDER_ID  VARCHAR(20),
  FINISHED        VARCHAR(20),
  WATCH           VARCHAR(20),
  BUYITNOW_PRICE  VARCHAR(20),
  PIC_URL         VARCHAR(20),
  PRIVATE_AUCTION VARCHAR(20),
  AUCTION_TYPE    VARCHAR(20),
  INSERT_DATE     DATETIME,
  UPDATE_DATE     DATETIME,
  CAT_1_ID        VARCHAR(20),
  CAT_2_ID        VARCHAR(20),
  ARTICLE_DESC    VARCHAR(20),
  DESC_TEXTONLY   VARCHAR(20),
  COUNTRYCODE     VARCHAR(20),
  LOCATION        VARCHAR(20),
  CONDITION       VARCHAR(20),
  REVISED         VARCHAR(20),
  PAYPAL_ACCEPT   TINYINT,
  PRE_TERMINATED  VARCHAR(20),
  SHIPPING_TO     VARCHAR(20),
  FEE_INSERTION   VARCHAR(20),
  FEE_FINAL       VARCHAR(20),
  FEE_LISTING     VARCHAR(20),
  PIC_XXL         TINYINT,
  PIC_DIASHOW     TINYINT,
  PIC_COUNT       VARCHAR(20),
  ITEM_SITE_ID    VARCHAR(20),
    PRIMARY KEY ( `ARTICLE_NO` ));

Ошибка теперь рядом с 'CONDITION VARCHAR (20), REVISED VARCHAR (20), PAYPAL_ACCEPT TI' в строке 29

Я действительно не вижу, что не так, нужен ли TINYINT параметр?

Должны ли имена столбцов MYSQL быть заглавными?

Если вы не знаете, как его отформатировать, Джош, над текстовым полем сообщения есть кнопка «код» (выглядит как двоичная). Выберите свой код и нажмите эту кнопку. В противном случае пробелы не сохраняются должным образом.

Tom H 29.10.2008 17:57

@John Sheehan - удалите код, который не имеет значения. Показывайте только тот код, в котором есть реальная проблема, с которой вам действительно нужна помощь.

S.Lott 29.10.2008 18:13

Выйти из редактирования вопроса. Сейчас ни один из ответов не имеет смысла. Если нужно редактировать, добавьте раздел обновлений.

Dave 29.10.2008 19:01

Я голосую за закрытие вопроса и избавление от него. Возможно, начнем снова с более разумной версии.

S.Lott 29.10.2008 20:24
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
4
471
9
Перейти к ответу Данный вопрос помечен как решенный

Ответы 9

«VARCHAR (20)» не присваивает имени.

watch VARCHAR(20),  **????** VARCHAR(20), 
auction_type VARCHAR(20),

Между часами и аукционом вы пропустили название столбца. Есть только varchar (20), либо удалите его, либо добавьте отсутствующее имя столбца.

Ответ об отсутствующем имени поля правильный (я бы проголосовал за него, если бы у меня был представитель), но я бы также рекомендовал разместить следующую строку после 'cat_2_id VARCHAR (20)':

PRIMARY KEY (`article_no`)

«Над моим» теряет контекст по мере того, как ваш ответ перемещается.

Ed Guiness 29.10.2008 18:14

С конца:

pic_count VARCHAR(20),item_site_id);

item_site_id вроде не имеет типа. Дайте ему тип, и ваш запрос подтвердит ...

(Протестируйте здесь: http://www.wangz.net/cgi-bin/pp/gsqlparser/sqlpp/sqlformat.tpl для поиска ошибок такого рода)

+1. Я тоже это видел и как раз собирался опубликовать.

ConcernedOfTunbridgeWells 29.10.2008 18:04

Форматирование.

Совет: Код формата для удобочитаемости.

Я беру ваш код и применяю простое форматирование ...

CREATE TABLE auctions (
  article_no        VARCHAR(20),
  article_name      VARCHAR(100),
  subtitle          VARCHAR(20),
  current_bid       VARCHAR(20),
  start_price       VARCHAR(20),
  bid_count         VARCHAR(20),
  quant_total       VARCHAR(20),
  quant_sold        VARCHAR(20),
  start             DATETIME,
  ends              DATETIME,
  origin_end        DATETIME,
  seller_id         VARCHAR(20),
  best_bidder_id    VARCHAR(20),
  finished          VARCHAR(20),
  watch             VARCHAR(20),
  buyitnow_price    VARCHAR(20),
  pic_url           VARCHAR(20),
  private_auction   VARCHAR(20),
  auction_type      VARCHAR(20),
  insert_date       DATETIME,
  update_date       DATETIME,
  cat_1_id          VARCHAR(20),
  cat_2_id          VARCHAR(20),
  article_desc      VARCHAR(20),
  desc_textonly     VARCHAR(20),
  countrycode       VARCHAR(20),
  location          VARCHAR(20),
  condition         VARCHAR(20),
  revised           VARCHAR(20),
  paypal_accept     TINYINT,
  pre_terminated    VARCHAR(20),
  shipping_to       VARCHAR(20),
  fee_insertion     VARCHAR(20),
  fee_final         VARCHAR(20),
  fee_listing       VARCHAR(20),
  pic_xxl           TINYINT,
  pic_diashow       TINYINT,
  pic_count         VARCHAR(20),
  item_site_id
);

... и сразу я вижу, что в item_site_id отсутствует тип данных.

Ответ принят как подходящий

Я считаю, что имена столбцов «START» и «CONDITION» - это «особые» слова в MySQL? Все, что я сделал, это просто вставил улучшенный код в браузер запросов и заметил, что имена некоторых столбцов были «синими» ...: P

Согласно списку Зарезервированные ключевые слова MySQL, CONDITION является зарезервированным ключевым словом, и вы должны экранировать его (используя обратные тики), чтобы использовать его в качестве имени объекта (например, таблицы, столбца и т. д.).

Я бы не рекомендовал использовать зарезервированное ключевое слово в качестве имени столбца (даже если вы его экранировали), потому что это вызовет всевозможные проблемы при написании запросов в будущем.

Сравните имена столбцов со списком зарезервированных слов MySQL:

http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html

Вы увидите, что CONDITION - зарезервированное слово. Вы можете использовать зарезервированные слова MySQL для имен столбцов, но вы должны заключить их в обратные кавычки, чтобы четко указать MySQL, что вы не используете это слово в его обычном использовании.

. . .
LOCATION    VARCHAR(20),
`CONDITION` VARCHAR(20),
REVISED     VARCHAR(20),
. . .

Другие вопросы по теме