Re: "RETURNING PRIMARY KEY" syntax extension
От | David G Johnston |
---|---|
Тема | Re: "RETURNING PRIMARY KEY" syntax extension |
Дата | |
Msg-id | 1402293854142-5806464.post@n5.nabble.com обсуждение исходный текст |
Ответ на | Re: "RETURNING PRIMARY KEY" syntax extension (David G Johnston <david.g.johnston@gmail.com>) |
Список | pgsql-hackers |
David G Johnston wrote > > Ian Barwick wrote >> Hi, >> >> The JDBC API provides the getGeneratedKeys() method as a way of >> retrieving >> primary key values without the need to explicitly specify the primary key >> column(s). This is a widely-used feature, however the implementation has >> significant >> performance drawbacks. >> >> Currently this feature is implemented in the JDBC driver by appending >> "RETURNING *" to the supplied statement. However this means all columns >> of >> affected rows will be returned to the client, which causes significant >> performance problems, particularly on wide tables. To mitigate this, it >> would >> be desirable to enable the JDBC driver to request only the primary key >> value(s). > Seems like a good idea. >> ERROR: Relation does not have any primary key(s) > "Relation does not have a primary key." > or > "Relation has no primary key." (preferred) > > By definition it cannot have more than one so it must have none. > > It could have multiple unique constraints but I do not believe they are > considered if not tagged as primary. Also, I did see where you account for auto-updatable views but what about complex views with instead of triggers? These can still be the target of DML queries but are not guaranteed (though can possibly) to return a well-defined primary key. At worse an explicit error about the view itself, not the apparent lack of primary key, should be emitted. David J. -- View this message in context: http://postgresql.1045698.n5.nabble.com/RETURNING-PRIMARY-KEY-syntax-extension-tp5806462p5806464.html Sent from the PostgreSQL - hackers mailing list archive at Nabble.com.
В списке pgsql-hackers по дате отправления: