2012-03-02 1 views
1

TABLE_A:SQL вставить новую строку, только если две колонки (IDS) не существует в паре ранее

id | user_id | stage_id | create_date 

TABLE_B:

id | stage_id | template_id | name | description | create_date 

Я сохраняю данные в них через форму на страницы с вызовами ajax. Моя проблема заключается в том, что я хочу только вставить новую строку в таблицу_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

ли TABLE_B играть определенную роль в вашем вопросе? – Colin

ответ

3

Я бы просто запросить таблицу, чтобы увидеть, если значение уже существует для stage_id, user_id пара.

так что-то вроде:

if not exists (select * from table_A where user_id = @myUserID and stage_id = @myStageID) 
begin 
insert into ... 
end 
Смежные вопросы