Cos mi nie działa w procedurze a robię tak:

  1. CREATE OR REPLACE FUNCTION dodaj_podstrona_insert() returns opaque
  2. AS'
  3. begin for k in select id_sl_kolor
  4. from sl_kolor loop
  5. insert
  6. into kolor ( id_sl_kolor, id_podstrona, ilosc )
  7. values ( k.id_sl_kolor, new.id_podstrona, 0 );
  8. end loop;
  9. return new;
  10. end;
  11. ' LANGUAGE 'plpgsql';


a poźniej tak:
  1. CREATE TRIGGER dodaj_podstrona before INSERT ON podstrona
  2. FOR each row execute procedure dodaj_podstrona_insert();


a moje tabele wygladaja tak:

  1. CREATE TABLE "public"."podstrona" (
  2. "id_podstrona" SERIAL,
  3. "id_domena" INTEGER NOT NULL,
  4. "nazwa" VARCHAR(255) NOT NULL,
  5. "sid1" INTEGER NOT NULL,
  6. "sid2" INTEGER NOT NULL,
  7. CONSTRAINT "pk_podstrona" PRIMARY KEY("id_podstrona"),
  8. CONSTRAINT "podstrona_sid1_key" UNIQUE("sid1"),
  9. CONSTRAINT "podstrona_sid2_key" UNIQUE("sid2"),
  10. CONSTRAINT "fk_podstrona_id_domena" FOREIGN KEY ("id_domena")
  11. REFERENCES "public"."domena"("id_domena")
  12. ) ;


  1. CREATE TABLE "public"."sl_kolor" (
  2. "id_sl_kolor" SERIAL,
  3. "kolor" VARCHAR(255) NOT NULL,
  4. CONSTRAINT "pk_sl_kolor" PRIMARY KEY("id_sl_kolor")
  5. );


  1. CREATE TABLE "public"."kolor" (
  2. "id_kolor" SERIAL,
  3. "id_sl_kolor" INTEGER NOT NULL,
  4. "id_podstrona" INTEGER NOT NULL,
  5. "ilosc" INTEGER DEFAULT 0 NOT NULL,
  6. CONSTRAINT "pk_kolor" PRIMARY KEY("id_kolor"),
  7. CONSTRAINT "fk_kolor_id_podstrona" FOREIGN KEY ("id_podstrona")
  8. REFERENCES "public"."podstrona"("id_podstrona"),
  9. CONSTRAINT "fk_kolor_id_sl_kolor" FOREIGN KEY ("id_sl_kolor")
  10. REFERENCES "public"."sl_kolor"("id_sl_kolor")
  11. );



komunikat ktory dostaje po próbie wykonania instrukcji INSERT do tabeli podstrona wygląda tak:
Kod
missing .. at end of SQL expression


no i co jest nie tak?