我有两个表:sessions和assignments。这个assignments表有一个叫做
目前我所做的是删除这个表,并基于
scriptname
的列,其值为字符串。sessions表的列名与scriptname
相同,同时还有id
、uid
、timein
和timeout
这些列。当我向assignments添加新实例时,会在sessions中添加新的列,列名为scriptname
,并且默认值为0。我应该如何做呢?目前我所做的是删除这个表,并基于
scriptname
列创建一个新表。问题是,我失去了所有数据。DROP TABLE sessions;
SET SESSION group_concat_max_len = 1000000;
SELECT
CONCAT(
'CREATE TABLE sessions (',
GROUP_CONCAT(DISTINCT
CONCAT(scriptname, ' BOOL DEFAULT 0')
SEPARATOR ','),
');')
FROM
assignments
INTO @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
ALTER TABLE sessions
ADD COLUMN `timeout` timestamp not null FIRST,
ADD COLUMN `timein` timestamp not null DEFAULT CURRENT_TIMESTAMP FIRST,
ADD COLUMN `uid` VARCHAR(128) not null FIRST,
ADD COLUMN `id` INT(11) AUTO_INCREMENT PRIMARY KEY not null FIRST;
我希望有人能够帮助我,因为我对SQL并不是很熟悉!提前感谢。