From 9e1d8d8c5e357a56f88c78eca52ccbb37902d43c Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Thu, 8 Oct 2015 09:15:57 +0100 Subject: [PATCH] Bug 14978: Add unique key constraint on issues.itemnumber MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The constraint might have existed before bug 14069. For these DB, this patch will restore it, for others, it will add it :) Test plan: > show create table issues; should not return "unique key itemnumber" Execute the updatedb entry twice > show create table issues; should return only one "unique key itemnumber" Signed-off-by: Marc Véron Signed-off-by: Kyle M Hall Signed-off-by: Tomas Cohen Arazi --- installer/data/mysql/kohastructure.sql | 1 + installer/data/mysql/updatedatabase.pl | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/installer/data/mysql/kohastructure.sql b/installer/data/mysql/kohastructure.sql index 3a305856e4..12b7924ce3 100644 --- a/installer/data/mysql/kohastructure.sql +++ b/installer/data/mysql/kohastructure.sql @@ -1148,6 +1148,7 @@ CREATE TABLE `issues` ( -- information related to check outs or issues `issuedate` datetime default NULL, -- date the item was checked out or issued `onsite_checkout` int(1) NOT NULL default 0, -- in house use flag PRIMARY KEY (`issue_id`), + UNIQUE KEY `itemnumber` (`itemnumber`), KEY `issuesborridx` (`borrowernumber`), KEY `itemnumber_idx` (`itemnumber`), KEY `branchcode_idx` (`branchcode`), diff --git a/installer/data/mysql/updatedatabase.pl b/installer/data/mysql/updatedatabase.pl index 3b2bc55484..99c126d2bf 100755 --- a/installer/data/mysql/updatedatabase.pl +++ b/installer/data/mysql/updatedatabase.pl @@ -11247,6 +11247,16 @@ if(CheckVersion($DBversion)) { SetVersion($DBversion); } +$DBversion = 'XXX'; +if ( CheckVersion($DBversion) ) { + my $create_table_issues = @{ $dbh->selectall_arrayref(q|SHOW CREATE TABLE issues|) }[0]->[1]; + if ($create_table_issues !~ m|UNIQUE KEY.*itemnumber| ) { + $dbh->do(q|ALTER TABLE issues ADD CONSTRAINT UNIQUE KEY (itemnumber)|); + } + print "Update to $DBversion done (Bug 14978: Make sure issues.itemnumber is a unique key)\n"; + SetVersion($DBversion); +} + # DEVELOPER PROCESS, search for anything to execute in the db_update directory # SEE bug 13068 # if there is anything in the atomicupdate, read and execute it. -- 2.39.5