Вставьте новую запись после ожидаемого результата - PullRequest
1 голос
/ 13 декабря 2011

В моей таблице items я получил следующие записи:

shop_vnum   item_vnum   count
4           13209       1
4           11229       1

А затем я хочу вставить новую запись после item_vnum 13209, чтобы она выглядела так:

shop_vnum   item_vnum   count
4           13209       1
4           12400       1
4           11229       1

Это возможно?

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

Если вы используете таблицу InnoDB, а item_vnum является первичным ключом, InnoDB фактически «физически» упорядочит строки в порядке возрастания по item_vnum (для этого используется нечто, называемое кластерными индексами).

Но этоПохоже, вы хотите, чтобы это было организовано в порядке убывания, поэтому следующая лучшая вещь, о которой я могу подумать, это создание представления:

http://net.tutsplus.com/tutorials/databases/introduction-to-mysql-views/

http://www.techotopia.com/index.php/An_Introduction_to_MySQL_Views

CREATE VIEW items_view AS SELECT * FROM items ORDER BY item_vnum DESC;

Тогда представление с именем "items_view" должно вести себя как таблица и отражать то, что вы ищете, всякий раз, когда вы вставляете что-то в таблицу "items".

Но лучший ответ, вероятно, таков: выне нужно беспокоиться о том, как они вставлены.Вам нужно только побеспокоиться о том, как они будут получены с помощью вашего оператора select позже.Обязательно используйте «ORDER BY item_vnum desc» в конце оператора select.

0 голосов
/ 13 декабря 2011

Так же, как это

insert into items (shop_vnum, item_vnum, `count`)
values (4, 12400, 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...