Liquibase 3.8 插入带引号的 tinyint 值
Liquibase 3.8 inserts tinyint value with quotes
我正在尝试使用 liquibase 脚本向 mysql 中插入一个值:
<changeSet author="liquibase" id="6225">
<insert tableName="master">
<column name="id" value="7"/>
<column name="insightname" value="topic_modelling"/>
<column name="insighttype" value="1" valueBoolean="true"/>
</insert>
</changeSet>
但是当我尝试这个时它给了我错误:
Error: Data truncation: Data too long for column 'insighttype' at row
1 [Failed SQL: INSERT INTO db.master (id,
insightname, insighttype) VALUES ('7', 'topic_modelling', '1')]
是不是因为值是用引号传递的?解决方法是什么?
我的 Create table 语句如下所示:
CREATE TABLE ss_insightmaster (
id int(11) NOT NULL AUTO_INCREMENT,
insightname varchar(255) NOT NULL,
enabled tinyint(1) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
每个数据库都以不同方式处理布尔值 - Liquibase 期望类型为 BIT
的 insighttype
而不是 TINYINT
,因为您使用的是 MySQL,正如您在 liquibase 中看到的那样github.
或
作为肮脏的 hack,您可以 运行 与另一个 dbms
的变更集,其中 NUMBER
是预期的:
<changeSet author="liquibase" id="6225" dbms="oracle">
<insert tableName="master">
<column name="id" value="7"/>
<column name="insightname" value="topic_modelling"/>
<column name="insighttype" value="1" valueBoolean="true"/>
</insert>
</changeSet>
我正在尝试使用 liquibase 脚本向 mysql 中插入一个值:
<changeSet author="liquibase" id="6225">
<insert tableName="master">
<column name="id" value="7"/>
<column name="insightname" value="topic_modelling"/>
<column name="insighttype" value="1" valueBoolean="true"/>
</insert>
</changeSet>
但是当我尝试这个时它给了我错误:
Error: Data truncation: Data too long for column 'insighttype' at row 1 [Failed SQL: INSERT INTO db.master (id, insightname, insighttype) VALUES ('7', 'topic_modelling', '1')]
是不是因为值是用引号传递的?解决方法是什么?
我的 Create table 语句如下所示:
CREATE TABLE ss_insightmaster (
id int(11) NOT NULL AUTO_INCREMENT,
insightname varchar(255) NOT NULL,
enabled tinyint(1) DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
每个数据库都以不同方式处理布尔值 - Liquibase 期望类型为 BIT
的 insighttype
而不是 TINYINT
,因为您使用的是 MySQL,正如您在 liquibase 中看到的那样github.
或
作为肮脏的 hack,您可以 运行 与另一个 dbms
的变更集,其中 NUMBER
是预期的:
<changeSet author="liquibase" id="6225" dbms="oracle">
<insert tableName="master">
<column name="id" value="7"/>
<column name="insightname" value="topic_modelling"/>
<column name="insighttype" value="1" valueBoolean="true"/>
</insert>
</changeSet>