From: Magnus Enger Date: Mon, 11 Feb 2019 10:07:21 +0000 (+0100) Subject: Bug 12488: Make bulkmarcimport.pl -d use DELETE instead of TRUNCATE X-Git-Url: http://git.rot13.org/?a=commitdiff_plain;h=b7b4694666657f57aaf61d091ed34c9f754a11e3;p=koha.git Bug 12488: Make bulkmarcimport.pl -d use DELETE instead of TRUNCATE On MySQL >= 5.5 bulkmarcimport.pl with the -d (delete) switch gives an error like "Cannot truncate a table referenced in a foreign key constraint". This patch proposes to replace the offending TRUNCATE with DELETE. Auto incerement counters are reset to 1 to preserve the functionality from TRUNCATE. To test: - Make sure you havae a test database with some records and items - Run bulkmarcimport.pl with the -d switch - Observe the error described above - Apply this patch - Run bulkmarcimport.pl with the -d switch again - Observe the lack of an error - Verify that the newly imported records and items have biblionumber and itemnumbers starting with 1 Signed-off-by: Martin Renvoize Signed-off-by: Marcel de Rooy Signed-off-by: Nick Clemens --- diff --git a/misc/migration_tools/bulkmarcimport.pl b/misc/migration_tools/bulkmarcimport.pl index d820d3e991..bd80a69b95 100755 --- a/misc/migration_tools/bulkmarcimport.pl +++ b/misc/migration_tools/bulkmarcimport.pl @@ -176,9 +176,12 @@ if ($fk_off) { if ($delete) { if ($biblios){ print "deleting biblios\n"; - $dbh->do("truncate biblio"); - $dbh->do("truncate biblioitems"); - $dbh->do("truncate items"); + $dbh->do("DELETE FROM biblio"); + $dbh->do("ALTER TABLE biblio AUTO_INCREMENT = 1"); + $dbh->do("DELETE FROM biblioitems"); + $dbh->do("ALTER TABLE biblioitems AUTO_INCREMENT = 1"); + $dbh->do("DELETE FROM items"); + $dbh->do("ALTER TABLE items AUTO_INCREMENT = 1"); } else { print "deleting authorities\n";