Opened 18 years ago
Closed 18 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 , 18 years ago
Attachment: | django_fix_pkonly_update_#2512.diff added |
---|
comment:1 by , 18 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.