2017-07-01 13 views
0

テーブルに列を追加したいpolice_publiclocationここで、列は現在のTIMESTAMP値より5hrと30min大きな値を持つ必要があります。私は次のことをやっているが、それは動作していないタイムスタンプのデフォルトのdatetime値を持つテーブルに列を追加する方法

.. 私にいくつかのソリューションを提供してくださいは...事前に感謝..

ALTER TABLE `police_publiclocation` ADD `datetime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP+CONVERT(Datetime, '2011-09-28 05:30:00',120) AFTER `active`; 

がERROR: MySQLは言った:ドキュメント

# 1064 - SQL構文にエラーがあります。近くに「+(日時、CONVERT 『を使用してをライン1

で』 active AFTER 2011-09-28 5時30分00秒)」を以下のように使用する権利構文については、ご使用のMariaDBサーバーのバージョンに対応するマニュアルを確認してください

MYSQL

phpMyAdminの バージョン情報:4.6.6、最新の安定バージョン:4.7.2

データベース・サーバ

S ERVER:ローカルホストUNIXソケット サーバータイプ経由:MariaDB Serverバージョン:10.1.20-MariaDB - MariaDBサーバー プロトコルバージョン:10 サーバの文字セット:UTF-8のUnicode(UTF8)

Webサーバー のApache/2.4。 6(CentOSの)のOpenSSL/1.0.1e-FIPS データベースクライアントのバージョン:libmysql - mysqlnd 5.0.12-devの - 20150407 - $ PHPエクステンション:mysqliDocumentation curlDocumentation mbstringDocumentation PHPバージョン:7.0.8 MariaDB 10.2で

+1

どのDBMSを使用していますか?答えがDBMSに依存するので、無関係のタグで削除してください。 –

+0

Maria DBのドキュメントによると: DEFAULT式がMariaDB 10.2.1で導入されました。 あなたはあなたが10.1.20バージョンになっていると書いてありますので、デフォルトの式はあなたのケースでは動作しません。 https://mariadb.com/kb/en/mariadb/alter-table/ –

+0

MariaDB 10.2.1より前のバージョンでは、[PREPARE Statement](https://mariadb.com/kb/)を使用することもできますen/mariadb/prepare-statement /)。 – wchiquito

答えて

0

DEFAULTに任意の式を入れることができます。

それ以外の場合は、TRIGGERを使用して設定することを検討してください。

関連する問題