- (when pk-slot
- (if (or (and (listp (view-class-slot-db-constraints pk-slot))
- (member :auto-increment (view-class-slot-db-constraints pk-slot)))
- (eql (view-class-slot-db-constraints pk-slot) :auto-increment))
- (unless pk
- (let ((db-pk (car (query "SELECT LAST_INSERT_ID();"
- :flatp t :field-names nil
- :database database))))
- (setf pk db-pk
- (slot-value
- obj (slot-definition-name pk-slot)) db-pk)))
-
- (setf pk (or pk
- (slot-value
- obj (slot-definition-name pk-slot))))))
+ (when (and pk-slot (not pk))
+ (setf pk (if (member :auto-increment (listify (view-class-slot-db-constraints pk-slot)))
+ (setf (slot-value obj (slot-definition-name pk-slot))
+ (database-last-auto-increment-id database
+ table
+ pk-slot)))))
+ (setf pk (or pk
+ (slot-value
+ obj (slot-definition-name pk-slot)))))