58 lines
1.7 KiB
SQL
58 lines
1.7 KiB
SQL
CREATE DATABASE IF NOT EXISTS `wago` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
USE `wago`;
|
|
|
|
DELIMITER //
|
|
|
|
CREATE PROCEDURE create_isp_tables()
|
|
BEGIN
|
|
DECLARE table_index INT DEFAULT 1;
|
|
DECLARE value_index INT DEFAULT 1;
|
|
DECLARE value_columns LONGTEXT DEFAULT '';
|
|
DECLARE stmt_sql LONGTEXT;
|
|
|
|
WHILE value_index <= 200 DO
|
|
SET value_columns = CONCAT(value_columns, ', `Wert', value_index, '` TEXT NULL');
|
|
SET value_index = value_index + 1;
|
|
END WHILE;
|
|
|
|
WHILE table_index <= 20 DO
|
|
SET stmt_sql = CONCAT(
|
|
'CREATE TABLE IF NOT EXISTS `isp',
|
|
LPAD(table_index, 2, '0'),
|
|
'` (',
|
|
'`id` INT(11) NOT NULL AUTO_INCREMENT,',
|
|
'`datum` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,',
|
|
'`userlevel` INT(1) NOT NULL',
|
|
value_columns,
|
|
', PRIMARY KEY (`id`)',
|
|
') ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;'
|
|
);
|
|
|
|
PREPARE stmt FROM stmt_sql;
|
|
EXECUTE stmt;
|
|
DEALLOCATE PREPARE stmt;
|
|
|
|
SET table_index = table_index + 1;
|
|
END WHILE;
|
|
END//
|
|
|
|
CALL create_isp_tables()//
|
|
DROP PROCEDURE create_isp_tables//
|
|
|
|
DELIMITER ;
|
|
|
|
CREATE TABLE IF NOT EXISTS `app_users` (
|
|
`id` INT NOT NULL AUTO_INCREMENT,
|
|
`username` VARCHAR(80) NOT NULL,
|
|
`name` VARCHAR(120) NOT NULL,
|
|
`email` VARCHAR(160) NULL,
|
|
`password_hash` VARCHAR(255) NOT NULL,
|
|
`role` ENUM('viewer', 'technician', 'admin') NOT NULL DEFAULT 'viewer',
|
|
`active` TINYINT(1) NOT NULL DEFAULT 1,
|
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
`updated_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
PRIMARY KEY (`id`),
|
|
UNIQUE KEY `uniq_app_users_username` (`username`),
|
|
UNIQUE KEY `uniq_app_users_email` (`email`)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|