2016-02-14 125 views
1

我有一个名为case_parties的子表,它由每个原告和被告向法院案件的名称和地址组成。添加自动增量sql脚本

表列包括:

  • case_id,这是一个外键到父表
  • party_type,已编码的1或2(1字段值指示原告和2表示被告)。需要注意的是,在每个法庭案件中并不总是只有一个原告和一个被告。在一起案件中,通常有多个原告和多个被告。在任何情况下,可以有1至1,000多位原告和/或被告。我创建了一个新列,在case_idparty_type列上,我们将其称为party_idSET它与CONCAT。因此,该栏中的匹配行包括所有原告或所有被告对给定case_id

要为每行一个简单的唯一关键,我想运行一个脚本,将自动生成增量数字或字母,以匹配party_id场结束。例如,如果在同一案件中有4个原告,现在有4个字段与party_id字段值匹配,最后一个字符为1,表示该方是原告;我想增加一个增量,所以每一列都是唯一的,而这四行的最后两位数字反映如下:“1A”,“1B”,“1C”,“1D”或“1-D” 1“,”1-2“,”1-3“,”1-4“等等。我想添加增量数字可能比添加增量字母更容易。在这种情况下,没有其他列值单独或共同作出有效的组合索引。我正在寻求协助,自动递增匹配的列值,并将非常感谢任何帮助。谢谢。

+0

我不认为它会做出明智的解决方案,但“party_id”列的字段类型是VARCHAR,并且唯一标识每个单个参与方的结果或编辑列也必须是VARCHAR。 – pbnyc

+0

为什么它必须是VARCHAR?理想情况下,您希望让数据库使用主键处理您的唯一性。 – leeor

+0

因为大量的案件ID#的包含字母和身份证号码是相当长。我知道长主键是不推荐的,我在这种情况下没有选择。此外,这只是一个生产数据库,将用于提取原始数据,将其转换为更加修剪整齐的数据集。所以我不担心这个生产数据库的性能。 – pbnyc

回答

1

我会建议创建一个单独的表来表示被告/原告,并在那里有一个类型栏。然后在该表上使用常规自动增量的主键。

然后,您可以在case_parties表(外键)中使用该标识作为您的标识,它将通过唯一标识每个标识来解决您的问题。

+0

他们已经在“case_parties”表中,其中包含派对类型。我认为你完全不了解我的问题,请再阅读一次。 – pbnyc

+0

除非你的意思是把表格分成两个表格“原告”和被告“,然后订购然后设置一个自动递增..是啊..不想这样做。 – pbnyc

+0

,这将无法正常工作。自动增量计数必须重新启动 – pbnyc