2016-04-18 14 views
2

MySQLターミナルで以下のMySQLコマンドを貼り付けた後、以下のエラーが表示されました。このコードは、私のプロジェクトの実稼働環境から入手しました。実動envのdbに従ってローカルデータベースを更新します。テーブル作成エラー

mysql> CREATE TABLE `cityguide_pointofinterest` (
    -> `id` int(11) NOT NULL AUTO_INCREMENT, 
    -> `name` varchar(30) COLLATE utf8_danish_ci NOT NULL, 
    -> `vip` tinyint(1) NOT NULL, 
    -> `description` longtext COLLATE utf8_danish_ci NOT NULL, 
    -> `category_id` int(11) NOT NULL, 
    -> `email` varchar(254) COLLATE utf8_danish_ci, 
    -> `latitude` double NOT NULL, 
    -> `longitude` double NOT NULL, 
    -> `phone` varchar(15) COLLATE utf8_danish_ci, 
    -> `place` varchar(250) COLLATE utf8_danish_ci DEFAULT NULL, 
    -> `website` varchar(200) COLLATE utf8_danish_ci, 
    -> `date_created` datetime(6) NOT NULL, 
    -> `date_modified` datetime(6) NOT NULL, 
    -> `views` int(11) NOT NULL, 
    -> `picture_1` varchar(100) COLLATE utf8_danish_ci, 
    -> `picture_2` varchar(100) COLLATE utf8_danish_ci, 
    -> `picture_3` varchar(100) COLLATE utf8_danish_ci, 
    -> `order_id` varchar(20) COLLATE utf8_danish_ci DEFAULT NULL, 
    -> PRIMARY KEY (`id`), 
    -> KEY `cityguide_pointofi_category_id_8ab78aba_fk_cityguide_category_id` (`category_id`), 
    -> CONSTRAINT `cityguide_pointofi_category_id_8ab78aba_fk_cityguide_category_id` FOREIGN KEY (`category_id`) REFERENCES `cityguide_category` (`id`) 
    ->) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci; 

ERROR 1064(42000):SQL構文にエラーがあります。 (6)NOT NULL、 date_modified datetime(6)NOT NULL、 views int(11)NOT NULL '行13で使用する正しい構文については、MySQLサーバのバージョンに対応するマニュアルを参照してください。 mysql> !40101 SET character_set_client = @saved_cs_client * /; クエリOK、0行に影響あり(0.00秒)

+0

に '(6)'日時を果たすどういう目的あなたの質問?つまり、なぜ6? –

+0

'datetime'で' datetime'(6)を 'datetime' –

+0

に置き換えて実行するのは間違いないでしょうか? –

答えて

4

MYSQLのバージョンが5.5以下であると思います。

のMySQL 5.7はマイクロ秒までと、(6桁)TIME、DATETIME、およびTIMESTAMP値の小数秒をサポートしている精度:

秒の小数部を含むカラムを定義するには、使用 構文type_name(fsp).type_nameはTIME、DATETIME、または TIMESTAMPで、fspは小数点以下の秒精度です。例えば:

CREATE TABLE t1 (t TIME(3), dt DATETIME(6)); 

FSP値、与えられた場合、0の値は、小数部が存在しないことを意味6の範囲は0でなければなりません。省略した場合、デフォルトの精度は0です(これは、以前のMySQLバージョンとの互換性のために、6の標準SQLのデフォルトとは異なります。)

SQL FIDDLE DEMO

+0

だから、私はmysqlを更新する必要がありますか? –

+0

はい。古いバージョンではサポートされません –

関連する問題