Multiple primary keys for protected $primaryKey |
PHP Code: protected $primaryKey = 'priKey1'; // normal for a table having 1 pri key I have a combination of 3 pri key Then how should I declare it? PHP Code: protected $primaryKey = 'priKey1, priKey2, priKey3'; // don't think this is correct
I believe that any given SQL table can have only one primary key though the key may consist of several columns. In the multi-column case it would still only have one name which would be the value assigned to $primaryKey.
dave friend is correct a table can only have one primary key.
But it can have multiple other keys for indexing etc; What did you Try? What did you Get? What did you Expect?
Joined CodeIgniter Community 2009. ( Skype: insitfx )
It's a good question if you're asking how to set up Model::primaryKey to support a multi-column primary key. The answer is: you cannot. The value assigned to Model::primaryKey must be the name of a single column. However, the column used need not be the actual PRIMARY key for the table. The property can use any column, but that column should contain unique values and ideally be indexed.
You could probably extend the Model class to handle a composite primary key. That would require overriding five or six functions to achieve the same functionality. One of the best features of CI4 is its use of namespace and autoloading which makes it much easier to extend any class.
Any idea how to manage a primary key composed by multiple columns?
I think could be very useful for some data models, like for N-M auxiliary tables
I don't know if this is possible but, can you create a column in table that concat 2 field?
If this is possible, in that case, the pk in the mysql table remain the same, but in ci4, you can point the pk to the composite field that you create.
Has anyone worked on this? I'm thinking of modifying Model::doUpdate and adding a test for is_array($id) and if it is then I'll push that into a foreach of where statements.
Here's my first stab at doing an override in doInsert and doUpdate.
Anyone have any feedback? PHP Code: protected function doUpdate($id = NULL, $data = NULL) |
Welcome Guest, Not a member yet? Register Sign In |