1

以下のような列を持つスキーマがあります。Null は許可されておらず、デフォルト値はCURRENT_TIMESTAMPです。この列を持つテーブルにデータを挿入するために休止状態を使用しています。ただし、休止状態は以下のエラーで失敗します。私の DAO では、updateTime に値を設定していません。

Error:
Column 'updateTime' cannot be null. 

Column Schema:
updateTime  timestamp CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP

ありがとう

4

2 に答える 2

0

これが私のMySQLバージョン8.0で機能するものです

  • MySQL 列の定義:

NULL テーブル定義

  • エンティティ定義:

     @Basic(optional = false)
     @Column(name = "date_created", insertable = false, updatable = false)
     @Temporal(TemporalType.TIMESTAMP)
     private Date dateCreated;
    
于 2021-11-17T15:18:37.027 に答える
-1

DEFAULT CURRENT_TIMESTAMP次のようなものをアーカイブするために、列定義にオプションを追加してみてください。

updateTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

次の DDL クエリを使用して実行できます。

ALTER TABLE `your_table` MODIFY updateTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

または、テーブルをドロップして再作成します。

DEFAULT CURRENT_TIMESTAMPオプションの場合、updateTime列は MySQL サーバーによる挿入時に自動的に入力されます。詳細については、公式ドキュメントのこのエントリを参照してください。

于 2013-07-16T08:34:46.583 に答える