Codeception / Codeception/module-db

inserting null on an autoincrement primary key prevents cleanup

未關閉
#58 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
PHP
星號
23
分支
31
PR 合併指標
30 天內沒有已合併 PR

描述

When I have a table with a primary key column that's also increment, it's valid to set it to `null` on the insert statement. the last insert it will then return the auto increment value, which is the primary key in that case.

As already noticed in #44, the auto increment column doesn't have to be part of the primary key, so the return value of last insert id ironically doesn't necessarily belong to the primary key. However, #44 also broke the case, which one might perceive as more common, that the last insert id may also be the primary key.

So, `haveInDatabase(table, ['id' => null, ...])` with id as autoincrement and pk will lead to the id being set to `null` for cleanup, which results in the row not being removed at teardown.

I have prepared a fix for this case, which hopefully is specific enough to not interfere with other use cases.

貢獻指南

這個儲存庫沒有索引到貢獻指南

研究方向

先使用自動遞增主鍵重現 haveInDatabase(table, ['id' => null, ...]) 的情況,然後追蹤插入的 ID 如何為 teardown cleanup 記錄。完成的標準是保留產生的主鍵值,並在 cleanup 期間移除插入的資料列,同時不破壞自動遞增欄位不是主鍵的情況。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
php
領域
databases, testing-qa
Issue 類型
缺陷
難度
3/5
預估耗時
1-2 天
活躍度
停滯
描述清晰度
基本清楚
新手友好度
38/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。