我有一个表,我需要两个值都为主,因为我在其他表中将此组合称为外键。表定义和我需要输入的数据如下
create table T1 ( sno number(10), desc varchar2(10), constraint T1_PK primary key(sno,desc) ) DATA to put sno | desc --------------------------- 100 | "hundred" 000 | null 120 | "one twenty" 123 | "" <EMPTY STRING> 000 | "" <EMPTY STRING>
这里的问题是desc有时可以为null。主键不能为null,因此当我遇到null值时,我只是在表中插入“”。这里的问题是有时desc可能有空字符串。如果我插入about数据100,Null和100,则“”是两个不同的东西,但是我无法将它们放在表中。我不希望将诸如’EMPTY’之类的字符串设置为null,因为它可能会使正在查看表的最终用户感到困惑。
1)如何在将desc作为主键的同时处理null大小写。我不能使用自动序列号。2)如何区分我引入的空字符串和已经存在的空字符串?
为什么不引入真正的主键属性(如id),该属性会自动递增并在sno和desc上创建索引?