/** Get SQL command to create table
* @param string
* @param bool
+ * @param string
* @return string
*/
- function create_sql($table, $auto_increment) {
+ function create_sql($table, $auto_increment, $style) {
global $connection;
$return = $connection->result("SHOW CREATE TABLE " . table($table), 1);
if (!$auto_increment) {
return $return;
}
- function create_sql($table, $auto_increment) {
+ function create_sql($table, $auto_increment, $style) {
global $connection;
$return = '';
$return_parts = array();
if (preg_match('~nextval\(\'([^\']+)\'\)~', $field['default'], $matches)) {
$sequence_name = $matches[1];
$sq = reset(get_rows("SELECT * FROM $sequence_name"));
- $sequences[] = "CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value] START " . ($auto_increment ? $sq['last_value'] : 1) . " CACHE $sq[cache_value];";
+ $sequences[] = ($style == "DROP+CREATE" ? "DROP SEQUENCE $sequence_name;\n" : "")
+ . "CREATE SEQUENCE $sequence_name INCREMENT $sq[increment_by] MINVALUE $sq[min_value] MAXVALUE $sq[max_value] START " . ($auto_increment ? $sq['last_value'] : 1) . " CACHE $sq[cache_value];";
}
}
return true;
}
- function create_sql($table, $auto_increment) {
+ function create_sql($table, $auto_increment, $style) {
global $connection;
$return = $connection->result("SELECT sql FROM sqlite_master WHERE type IN ('table', 'view') AND name = " . q($table));
foreach (indexes($table) as $name => $index) {
}
$create = "CREATE TABLE " . table($table) . " (" . implode(", ", $fields) . ")";
} else {
- $create = create_sql($table, $_POST["auto_increment"]);
+ $create = create_sql($table, $_POST["auto_increment"], $style);
}
set_utf8mb4($create);
if ($style && $create) {
SQLite: Enable foreign key checks
PostgreSQL: Respect NULL default value
PostgreSQL: Do not export triggers if not requested
+PostgreSQL: Export DROP SEQUENCE if dropping table
Elasticsearch: Insert, update, delete
Adminer 4.4.0 (released 2018-01-17):