0

次のコマンドを使用してデータをインポートしようとすると、エラーが発生します。

mysql -u root -p"root" cvdb < "cvdb.sql"

私が得ているエラーは次のとおりです。

72 行目の ERROR 1064 (42000): SQL 構文にエラーがあります。Created'(14) NOT NULL, datetime NOT NULL default ' 0000-00-00 00:00:00 ', ' at line 14 の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

私のSQLファイルのコードは次のとおりです。

DROP TABLE IF EXISTS `activity`;
CREATE TABLE `activity` (
  `AllDay` enum('YES','NO') default 'NO',
  `ActivityID` int(11) unsigned NOT NULL auto_increment,
  `Type` int(11) NOT NULL default '0',
  `Priority` int(11) NOT NULL default '0',
  `Status` int(11) NOT NULL default '0',
  `Title` varchar(255) default NULL,
  `DueDate` datetime default NULL,
  `CompletedDate` datetime default NULL,
  `Details` text,
  `Creator` int(11) NOT NULL default '0',
  `Owner` int(11) default NULL,
  `ModifiedBy` int(11) default NULL,
  `Modified` timestamp(14) NOT NULL,
  `Created` datetime NOT NULL default ' 0000-00-00 00:00:00 ',
  `Start` datetime default NULL,
  `End` datetime default NULL,
  `AttachmentType` enum('NONE','FILE','LINK') NOT NULL default 'NONE',
  `Location` varchar(25) default NULL,
  `visibility` enum('PRIVATE','PUBLIC') NOT NULL default 'PRIVATE',
  `Notes` varchar(255) default NULL,
  PRIMARY KEY  (`ActivityID`),
  UNIQUE KEY `ActivityID` (`ActivityID`),
  KEY `Type` (`Type`),
  KEY `Priority` (`Priority`),
  KEY `Status` (`Status`),
  KEY `Creator` (`Creator`),
  KEY `Owner` (`Owner`),
  KEY `ModifiedBy` (`ModifiedBy`),
  KEY `Location` (`Location`)
) ENGINE=InnoDB;
4

2 に答える 2

0

エラーはこちらModified timestamp(14) NOT NULLです。(14)タイムスタンプから削除する必要があります。

あなたの部分的なDDL

  `ModifiedBy` int(11) default NULL,
  `Modified` timestamp NOT NULL,
  `Created` datetime NOT NULL default '0000-00-00 00:00:00', 
  `Start` datetime default NULL,
于 2013-01-11T09:46:08.817 に答える
0

mysqlドキュメントから

互換性のない変更: MySQL の非常に古いバージョン (4.1 より前) では、TIMESTAMP データ型は表示幅をサポートしていましたが、MySQL 4.1 以降は黙って無視されていました。これは MySQL 5.1 で廃止され、MySQL 5.5 で完全に削除されました。これらの動作の変更により、MySQL 5.5 以降のサーバーで TIMESTAMP(N) 列を使用しようとすると、次の 2 つの問題が発生する可能性があります。

...

アップグレードを実行する前に、データベース内の TIMESTAMP(N) カラムを ALTER TABLE で更新して、代わりに TIMESTAMP を使用することにより、これらのタイプの潜在的な問題を事前に処理するようにしてください。

(14) そのため、インを削除してみてください

Modified timestamp(14) NOT NULL

またはドキュメントで述べたように、alter tableインポートする前にタイムスタンプ列でステートメントを作成してみてください。

于 2013-01-11T09:48:04.757 に答える