0

mysql 管理 GUI ツールを使用してテーブルを作成しています。エラーになるクエリ言語は次のとおりです。

CREATE TABLE `environment`.`moisture` (
  `city_id` INT,
  `date_holding` VARCHAR,
  `time_holding` VARCHAR,
  `open` REAL,
  `high` REAL,
  `low` REAL,
  `close` REAL,
)
CHARACTER SET utf8;

私の日付と時刻は mysql が好む形式ではないため、これらの列の型として VARCHAR を選択し、クエリを実行して必要な変換を行うことができるようになるまで保持列として参照しました。

GUI経由でこれを実行しようとすると、次のようになります。

テーブルを作成するための SQL コマンドの実行中にエラーが発生しました。
SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、3 行目の「NOT NULL,
`time_holding` VARCHAR NOT NULL,
`open` REAL NOT NULL,
`high` RE' の近くで使用する正しい構文を確認してください (エラー 1064)

なぜ私はこれを得ているのですか?予約語を使用しているかどうかを確認しましたが、そうではないようです。

どうぞよろしくお願いいたします。

4

1 に答える 1

2

最初のエラーは、VARCHARフィールドには次のような長さが必要であるためですVARCHAR(30)

2 番目のエラー (2 つの varchars を修正すると発生します) は、最後の括弧の前のコンマです。

CREATE TABLE `environment`.`moisture` (
  `city_id` INT,
  `date_holding` VARCHAR(30),  --or whatever length you want
  `time_holding` VARCHAR(20),  --same
  `open` REAL,
  `high` REAL,
  `low` REAL,
  `close` REAL  --- no comma here
)
CHARACTER SET utf8;

補足: MySQL には日付と時刻を処理するための特定の型があることをご存知でしょうか? したがって、次のことができます。

CREATE TABLE `environment`.`moisture` (
  `city_id` INT,
  `date_holding` date,
  `time_holding` time,
  ...
于 2011-03-22T16:09:36.010 に答える