1

CURRENT_TIMESTAMP日付の指定に使用するテーブルの作成に問題があります。日付で取得するためにJava jpaエンティティを使用しているため、これが必要です。ローカルの h2 データベースを実行しても問題はありません。

この例では:

INSERT INTO Post (id, title, slug, teaser, body, author_id, posted_on)
VALUES (1, 'Spring Boot Rocks!', 'spring-boot-rocks', @TEASER, @BODY, 1, CURRENT_TIMESTAMP);

すべてが作成され、完全に機能しますが、接続先の Azure SQL データベースで同じクエリを実行しようとすると、エラーが発生します

クエリの実行に失敗しました。エラー: 明示的な値をタイムスタンプ列に挿入できません。列リストで INSERT を使用してタイムスタンプ列を除外するか、タイムスタンプ列に DEFAULT を挿入します。

に変更しようとするとCURRENT_TIMESTAMPTIMESTAMP次のようになります。

クエリの実行に失敗しました。エラー: 列名 'TIMESTAMP' が無効です。前のエラーはテーブルが作成されることを示唆しているため、それを DEFAULT に変更すると、DEFAULT は時間値ではないため、作成日までにテーブルを取得できません。

完全なクエリ

SET IDENTITY_INSERT author ON

insert into author(id,first_name,last_name,email) values (1,'Dan','Vega','danvega@gmail.com');
insert into author(id,first_name,last_name,email) values (2,'John','Smith','johnsmith@gmail.com');

SET IDENTITY_INSERT author OFF
SET IDENTITY_INSERT post ON

DECLARE @TEASER varchar(4000) = 'text...'
DECLARE @BODY varchar(4000) = 'text...'

insert into Post(id,title,slug,teaser,body,author_id,posted_on) values (1,'Spring Boot Rocks!','spring-boot-rocks',@TEASER,@BODY,1,CURRENT_TIMESTAMP);
insert into Post(id,title,slug,teaser,body,author_id,posted_on) values (2,'Spring Data Rocks!','spring-data-rocks',@TEASER,@BODY,1,CURRENT_TIMESTAMP);
insert into Post(id,title,slug,teaser,body,author_id,posted_on) values (3,'John Blog Post 1','john-blog-post-1',@TEASER,@BODY,2,CURRENT_TIMESTAMP);
insert into Post(id,title,slug,teaser,body,author_id,posted_on) values (4,'John Blog Post 2','john-blog-post-2',@TEASER,@BODY,2,CURRENT_TIMESTAMP);
insert into Post(id,title,slug,teaser,body,author_id,posted_on) values (5,'John Blog Post 3','john-blog-post-3',@TEASER,@BODY,2,CURRENT_TIMESTAMP);
insert into Post(id,title,slug,teaser,body,author_id,posted_on) values (6,'Refactoring our Spring Data Project','refactoring-spring-data-project',@TEASER,@BODY,1,CURRENT_TIMESTAMP);

SET IDENTITY_INSERT post OFF
4

2 に答える 2