Hi,

When creating a table in embedded SQL, a foreign key construct like:

 FOREIGN KEY(col) REFERENCES table(col)

is not accepted by ecpg. Consider the following code fragment (error
checking omitted):

  EXEC SQL CREATE TABLE
    colscales(id   INTEGER     NOT NULL,
              name VARCHAR(64) NOT NULL,
              auto INTEGER     NOT NULL,
              PRIMARY KEY(id),
              UNIQUE(name));

  EXEC SQL CREATE TABLE colscaledata(scale_id  INTEGER     NOT NULL,
                                     order_id  INTEGER     NOT NULL,
                                     threshold FLOAT       NOT NULL,
                                     colour    VARCHAR(10) NOT NULL,
                                     FOREIGN KEY(scale_id) REFERENCES colscales(id));

This results in the following output from ecpg:

  src/colourscales_table.pc:55: ERROR: parse error, unexpected `NO', expecting `NOT' 
or `DEFERRABLE' or `INITIALLY' at or near "NO"

This is with ecpg 2.9.0, PostgreSQL 7.2 on Linux. The same(ish)
statments create the tables without problem with psql.

Obviously the workaround is to use something like:

 FOREIGN KEY(col) REFERENCES table

but this would not work if the desired column was not the primary
key...

BRegards, Lee Kindness.


---------------------------(end of broadcast)---------------------------
TIP 2: you can get off all lists at once with the unregister command
    (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])

Reply via email to