ECPG: CREATE TABLE ... FOREIGN KEY(col) REFERENCES table(col)
| От | Lee Kindness |
|---|---|
| Тема | ECPG: CREATE TABLE ... FOREIGN KEY(col) REFERENCES table(col) |
| Дата | |
| Msg-id | 15631.4934.470775.776160@kelvin.csl.co.uk обсуждение исходный текст |
| Ответы |
Re: ECPG: CREATE TABLE ... FOREIGN KEY(col) REFERENCES table(col)
|
| Список | pgsql-bugs |
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
ornear "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.
В списке pgsql-bugs по дате отправления: