2012-05-09 5 views
0

заказ запасные:Как избежать дублирования данных в таблице Mysql?

order_id(PK) item  status order_no 
1    pant  0  100 
2    shirt  1  200 

продукт-:

prod_id(Fk) id(pk) price  quantity order_no status 
    1    1   10   2   100  0 
    1    2   20   3   100  0 
    2    3   15   1   200  1 

Это мои два table-: заказ & продукта.

Что случилось, чтобы вставить данные в таблицу продуктов, мой запрос сначала проверяет статус таблицы заказов &, если он равен 0, он добавляет данные в таблицу продуктов.

Моя программа запускается по заданию CRON..so каждый раз, когда он просто проверяет статус заказа &, если он равен 0, , он снова добавляет те же данные в таблицу продуктов.

т.е. мой стол продукт стал как этот

prod_id(Fk) id(pk) price  quantity order_no status 
    1    1   10   2   100  0 
    1    2   20   3   100  0 
    2    3   15   1   200  1 
    1    4   10   2   100  0 
    1    5   20   3   100  0 

, которые я не хочу. мой столбец id - это pk, который автоматически увеличивается ... так Как избежать дублирования данных в таблице Product?

Можно ли каким-либо образом обновить или заменить те же данные?

плз наставит меня ..

ответ

3

Создать UNIQUE индекс на prod_id (или что столбцы определяют, что запись должна быть обновлена, а не установлена), а затем либо INSERT ... ON DUPLICATE KEY UPDATE или REPLACE.

+0

HI eggyal, я не могу создать уникальный индекс в таблице продуктов, так как я поддерживаю внешний ключ prod_id, который означает, что эти продукты из этого заказа нет. поэтому он может содержать то же значение, что и пример u, который можно проверить на заказ №. 1 было 2 продукта. – Prat

+0

@Prat: как вы определяете, хотите ли вы вставить новую запись или обновить существующую? Это 'order_no'? Сочетание 'order_no' и' prod_id'? Ваш вопрос непонятен. – eggyal

+0

Статус заказа 0 означает, что данные не перемещаются в оракулу ... поэтому, когда order_status становится 1, данные перемещаются в оракул ... но то, что произошло, до момента перемещения данных, данные о продукте вставляются в таблицу продуктов, которую я не хочу. . – Prat

 Смежные вопросы

  • Нет связанных вопросов^_^