2011-11-27 153 views
0

有没有办法,使用TRIGGER或最好是我不知道的一些MySql函数来自动分配TINYINT列的值为'1'如果ANY值是传入它?使用转换字符串tinyint(布尔)与mysql

例如,如果我有columnA(TINYINT)和I INSERT “doggybones” 到该列:

INSERT INTO mytable (columnA) VALUES ("doggybones") 

...那么MySQL将自动的 “1” 的值指定到columnA代替扬起有关尝试将string插入TINYINT列的错误?

还应该工作,所以,如果我插入“” - 一个空值,但INSERT声明仍然会列出它,就像这样:

INSERT INTO mytable (columnA) VALUES ("") 

...则列将接收值0

注:我知道我可以过滤我的值只是插入0和1的,但我想知道是否有办法在MySQL端做到这一点。

+0

你为什么要这么做? – gbn

+0

这个想法是能够快速轮询表以查看某些列是真还是假 – themerlinproject

+0

然后添加由触发器设置的额外列。你可以保留,清空或NULL的原始值在列A中,因为你需要 – gbn

回答

0

不幸的是,SQL(所有类型)严格执行数据类型。
这发生在任何触发器代码运行之前。

你必须测试“”(空字符串)