私がしたいのは、列のプロパティを変更し、特定の列のデフォルト値を関連付けたいということです。この値はサブクエリから取得されます。基本的に、timeOfCreation のデフォルト値はサブクエリにする必要があります--> (select NOW())。しかし、何らかの理由で構文エラーが返されますが、これは理解できません。これが私が入力した私のコマンドです。
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';
ALTER TABLE `horizon`.`articles` CHANGE COLUMN `timeOfCreation` `timeOfCreation` DATETIME NULL DEFAULT (select NOW()) ;
SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
そしてエラー:
Executing SQL script in server
ERROR: Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(select NOW())' at line 1
ALTER TABLE `horizon`.`articles` CHANGE COLUMN `timeOfCreation` `timeOfCreation` DATETIME NULL DEFAULT (select NOW())
SQL script execution finished: statements: 3 succeeded, 1 failed
Ps。ソフトはworkbenchを使っていますが、問題ないと思います。