【发布时间】:2014-09-19 03:13:45
【问题描述】:
这个问题是对上一个问题的后续。 is it possible to make a field in Mysql table to to have length max=700, to be unicode (3 bytes) and to be unique?
我有一张表 MyText,其中有 ID 列、text 列和许多其他列
我希望text 列支持 unicode,最大长度可以容纳 700 个 Unicode 字符。我无法设置 Unique (text),因为 MYSQL 仅支持唯一列的最大长度为 765 字节,而 Unicode 需要 3 个字节,所以我需要 2100 字节 (700*3) 唯一列。
因此,解决方案是创建一个触发器,以防止用户插入重复项。例如,如果用户在MyText 表中插入“THIS is My Text”(我们不区分大小写),那么 Mysql 将完全中止包含该插入语句的所有查询并生成一个SQLException 以防止系统做其他查询。
好的,假设您必须在 Java 代码中运行一系列 sql 语句
insert into MyText('THIS is My Text',1);
insert into OtherTable ('some text');
update othetTable...
那么当系统做insert into MyText('THIS is My Text',1);时,它应该停止做它下面的其他查询。
另外,有些人建议使用prefix index 来帮助 Nysql 更快地完成select,但我不确定这是否太必要,因为我得到了已编入索引的 ID 列。
注意:MYSQL 5.027 是 2006 版本,已经很老了,但我喜欢它
那么如何创建满足我要求的触发器或如何解决我的问题?
【问题讨论】: