表-A:
id | user_id | stage_id | create_date
表-B:
id | stage_id | template_id | name | description | create_date
我是通过带有ajax调用的页面上的表单将数据保存到这些数据。我的问题是,如果stage_id user_id配对是唯一的,我只想在Table_A中插入一个新行。
我不想要的例子,Table_A:
id user_id stage_id create_date
0129 | 24321 | 3202393 | 01/12/12
0129 | 39234 | 3202393 | 01/12/12
2329 | 39234 | 3202393 | 01/14/12
3459 | 39234 | 3202393 | 01/15/12
^这是我不想发生的事情,有什么好办法处理这个问题吗?
它应该是:
id user_id stage_id create_date
0129 | 24321 | 3202393 | 01/12/12
0129 | 39234 | 3202393 | 01/12/12
通过php类执行查询,如此过于简化的示例:
$query = 'INSERT INTO Table_A ('.
'id, '.
'user_id, '.
'stage_id, '.
'create_date '.
') OUTPUT inserted.id '.
'VALUES ('.
'newid(), '.
'%s, '.
'%s, '.
'getdate()'.
')';
$this->db->Execute($query);
可能遗漏了一些愚蠢的东西,但我认为有人可能会把我推向正确的方向,谢谢!
答案 0 :(得分:3)
我只是查询你的表,看看你的stage_id,user_id对是否已经存在一个值。
如下所示:
if not exists (select * from table_A where user_id = @myUserID and stage_id = @myStageID)
begin
insert into ...
end
答案 1 :(得分:0)
如果您愿意在数据库中执行此操作,则可以在sql-server中使用UNIQUE约束:http://msdn.microsoft.com/en-us/library/ms191166.aspx