Opened 19 years ago
Closed 19 years ago
#2512 closed defect (fixed)
[patch] Do not fail on update of a primary-key only table
| Reported by: | Daniel Hahler | Owned by: | Adrian Holovaty |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | dev |
| Severity: | normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Foo has a model with only id (primary key).
Calling:
existing_id = 1 foo = Foo( existing_id ) foo.save()
fails like this:
Traceback (most recent call last):
File "convert_raw.py", line 7, in ?
foo.save()
File "/usr/lib/python2.4/site-packages/django/db/models/base.py", line 183, in save
db_values + [pk_val])
File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 138, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.4/site-packages/MySQLdb/connections.py", line 33, in defaulterrorhandler
raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id`=142' at line 1")
The generated SQL is:
UPDATE `proj_foo` SET WHERE `id`=%s
A patch to fix this is attached.
Attachments (1)
Change History (2)
by , 19 years ago
| Attachment: | django_fix_pkonly_update_#2512.diff added |
|---|
comment:1 by , 19 years ago
| Resolution: | → fixed |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
(In [3548]) Fixed #2512 -- Fixed SQL error when saving existing empty models.