Rumah > Soal Jawab > teks badan
if(!$workflow_entity = $em->getRepository('AlbatrossAceBundle:Workflow')->findByIdAndStatus($line[$titleArr['WorkflowStepID']],$line[$titleArr['WorkflowStatus']])){
$workflow_entity = new Workflow();
$workflow_entity->setWorkflowStatus($line[$titleArr['WorkflowStatus']]);
$workflow_entity->setWorkflowStepID($line[$titleArr['WorkflowStepID']]);
$em->persist($workflow_entity);
}
Saya hanya menyemak sama ada data yang sama sudah ada dalam pangkalan data semasa,
Tetapi sudah ada beberapa keping data yang sama dalam data yang disisipkan.
Jadi semasa operasi sisipan, maklumat ini diberikan
Pengecualian berlaku semasa melaksanakan 'INSERT INTO workflow (workflow_step_id, workflow_status) VALUES (?, ?)' dengan params ["10", "Assigned"]:
SQLSTATE[23000]: Pelanggaran kekangan integriti: 1062 Entri pendua '10-Ditugaskan' untuk kunci 'stepid_status_uniq'
uniqueConstraints:
stepid_status_uniq:
columns: [ workflow_step_id, workflow_status ]
Saya telah mencipta kekangan unik dalam pangkalan data (saya tidak tahu sama ada ini perkara yang betul untuk dikatakan)
Tetapi data yang sedang dimasukkan kini mempunyai data yang sama sebelum kilat
Bagaimanakah saya tahu bahawa data semasa telah melanggar peraturan unik sebelum menyimpannya ke pangkalan data?
高洛峰2017-05-16 16:46:44
Anda boleh bertanya sekali sebelum memasukkan mengikut peraturan kekangan anda Contohnya, mengikut contoh anda, tanya dahulu
SELECT count(*) FROM workflow WHERE workflow_step_id='10' AND workflow_status='Assigned'
Jika hasilnya bukan 0, bermakna teruskan memasukkan akan melanggar peraturan unik.
Sudah tentu, ini sebenarnya tidak disyorkan. Ia sangat intensif sumber untuk menyemak setiap kali anda memasukkannya
Anda boleh pertimbangkan untuk menggunakan
INSERT IGNORE INTO
Kemudian periksa barisan yang terjejas selepas memasukkan Jika ia mengembalikan 0, ini bermakna pemasukan data gagal Pada masa ini, semak sama ada peraturan kekangan dilanggar.
滿天的星座2017-05-16 16:46:44
Anda harus menggunakan Pengesahan,
http://symfony.com/doc/master/reference/constraints/UniqueEntity.html