0
因此,我從CRM填充我的數據庫,並且試圖將每個項目提供的ID用作我的主鍵(我覺得這樣會使事情變得更加複雜,但如果這是不好的做法,請讓我知道)。問題是,當表已經有一些數據,我重新運行該功能,我得到這個錯誤:將自定義ID分配給Laravel模型時重複條目
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '25930688' for key 'PRIMARY'
糾正我,如果我錯了,但我會一直期待雄辯檢查前行存在試圖插入它。我試過保存,創建,firstOrNew,firstOrCreate。他們都返回相同的錯誤。我已經搜索了很多,但我很新,所以我不確定我在尋找合適的術語。
$listing = Property::create([
'id' => $property['@attributes']['id'],
'house_flat_number' => $property['address']['name'],
'street_address_1' => $property['address']['street'],
'street_address_2' => $property['address']['town'],
'postcode' => $property['address']['postcode']
我不認爲如果在插入之前就存在ID Laravel會檢查,你需要做手工。 – vonec
我會運行一個簡單的選擇查詢,無論你用什麼軟件來管理你的數據庫在你的財產表上 - 'select * from property where id = 25930688'並查看是否已經有記錄,如果是,那是你的問題。你確定你從CRM獲得的ID是獨一無二的嗎?如果這樣做你有這種做法之前的現有數據? – Joshua
@Joshua - 我想這可能是一個解決方案。沒有現有的數據,並且CRM ID是唯一的。問題是我想重新運行該功能只添加新的屬性,並且每次它將所有屬性添加到數據庫,所以它會從50到100到150 findOrNew +填充由jarek工作建議 – eurobob