From 903de0e889bf9696d9841a28bf5bb00e092a2d65 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 21 Aug 2019 11:44:57 +0200 Subject: [PATCH] SQLite: Allow setting auto increment for empty tables --- adminer/drivers/sqlite.inc.php | 6 ++++++ changes.txt | 1 + 2 files changed, 7 insertions(+) diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index 810b4ef4..d49aee64 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -482,6 +482,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) { } function alter_table($table, $name, $fields, $foreign, $comment, $engine, $collation, $auto_increment, $partitioning) { + global $connection; $use_all_fields = ($table == "" || $foreign); foreach ($fields as $field) { if ($field[0] != "" || !$field[1] || $field[2]) { @@ -512,7 +513,12 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) { return false; } if ($auto_increment) { + queries("BEGIN"); queries("UPDATE sqlite_sequence SET seq = $auto_increment WHERE name = " . q($name)); // ignores error + if (!$connection->affected_rows) { + queries("INSERT INTO sqlite_sequence (name, seq) VALUES (" . q($name) . ", $auto_increment)"); + } + queries("COMMIT"); } return true; } diff --git a/changes.txt b/changes.txt index f9614402..298a3078 100644 --- a/changes.txt +++ b/changes.txt @@ -4,6 +4,7 @@ MySQL: Allow editing rows identified by negative floats (bug #695) MySQL: Skip editing generated columns SQLite: Quote strings stored in integer columns in export (bug #696) SQLite: Handle error in altering table (bug #697) +SQLite: Allow setting auto increment for empty tables Adminer 4.7.2 (released 2019-07-18): Do not attempt logging in without password (bug #676)