Npgsql 42601:语法错误或附近(

时间:2016-05-22 16:32:16

标签: postgresql ado.net npgsql

尝试使用ADO.NET中的Npgsql执行以下命令时遇到问题:

  DO
  $do$
  BEGIN
  IF NOT EXISTS (SELECT 1 FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'public' AND TABLE_NAME = 'event_journal') THEN
      CREATE TABLE public.event_journal (
          id BIGSERIAL PRIMARY KEY,
          persistence_id VARCHAR(255) NOT NULL,
          sequence_nr BIGINT NOT NULL,
          is_deleted BOOLEAN NOT NULL,
          created_at BIGINT NOT NULL,
          manifest VARCHAR(500) NOT NULL,
          payload BYTEA NOT NULL,
          CONSTRAINT event_journal_uq UNIQUE (persistence_id, sequence_nr)
      );
      CREATE INDEX event_journal_sequence_nr_idx ON public.event_journal(sequence_nr);
      CREATE INDEX event_journal_created_at_idx ON public.event_journal(created_at);
  END IF;
  END
  $do$

这是标准语法错误 42601:语法错误在或附近(,位置指向create table语句的第一行。对我来说很奇怪,直接针对Postgres数据库运行SQL执行正确没有任何错误。

Npgsql版本: 3.0.7 PostgreSQL版本: 9.4.5,64位 .NET版本: 4.5(Windows 8.1 CLR)

0 个答案:

没有答案