Welcome Guest, Not a member yet? Register   Sign In
Multiple primary keys for protected $primaryKey

(This post was last modified: 10-05-2019, 09:56 AM by bustersg.)

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
protected $primaryKey = array('priKey1''priKey2''priKey3'); // ci4 online help document does not show it to be this way 

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

[font=arial, sans-serif]any solution for this case?[/font]

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.

Theme © iAndrew 2016 - Forum software by © MyBB