Я работаю над приложением для нашей компании, для которого требуется составной первичный ключ.
В соответствии с требованиями составной состоит из RegionID и AuthorizationID, но AuthroizationID не должен быть уникальным для себя.Другими словами, они хотят, чтобы это делалось так:
RegionID AuthorizationID
300 1
300 2
100 1
Так что я не могу создать простую идентификацию при авторизации, а затем просто вставить RegionID на передней панели.(Поверьте мне, я старался изо всех сил, чтобы не сделать это таким образом)
В любом случае, я создал триггер INSERT в MSSQL 2008, который выводит недавно вставленные RegionID и AuthorizationID, и инкапсулировал его в dbo.vwCreateRA.Отлично работает в MSSQL Studio.
Однако, чтобы сделать его вообще пригодным для использования, я хочу иметь возможность вернуть Composite PK из вставки внутри codeigniter, чтобы перенаправить пользователя на вновь созданную запись.
$sql = "INSERT INTO ReturnAuthorizations.dbo.vwCreateRA (
[Region],
[CustomerNumber],
/* a bunch of other fields... */
[UserID]
)
VALUES
?,
?,
/* a bunch of other values */
?)";
$query = $this->db->query($sql, [
$customer['SalespersonNumber'],
$customer['CustomerName'],
/* A bunch of other variables... */
$username
]);
die(var_dump($query->last_id());
Дает мне: Fatal error: Call to a member function last_id() on a non-object
Как я могу получить выход из INSERT представления через CodeIgniter, или мне придется полагаться на что-то вроде:
(Пожалуйста, извините код, вероятно, не самый лучшийпрактики, предназначенные только для выяснения сути вопроса)
$sql = "SELECT TOP 1
RegionID,
Authorization
FROM
AuthorizationTable
WHERE
RegionID = " . $customer['Region'] . "
AND UserID = " . $username . "
ORDER BY
CreateDate DESC";
Спасибо!