Запретить оператор вставки из таблицы переупорядочения в SQL - PullRequest
0 голосов
/ 24 января 2020

Я создаю таблицу внешнего ключа. Таблица будет содержать имена групп (в качестве своего первичного ключа), который упоминается как FK в основной таблице. Многие объекты в основной таблице могут принадлежать к одной группе.

Существует множество разных имен групп, поэтому я хотел бы добавить их все сразу, вставляя в оператор. Тем не менее, я хочу, чтобы «Нет» было верхним значением в таблице, чтобы его можно было легко щелкнуть при добавлении новых записей в основную таблицу.

Однако, когда я добавляю «Нет» в таблицу FK, затем выполните вставку в оператор, таблица автоматически перестраивается (в алфавитном порядке), помещая «None» рядом с серединой, и ее трудно щелкнуть.

Как я могу предотвратить изменение порядка таблицы?

Изменить: Извините, если я не был ясен. Я использую Navicat GUI для добавления данных в таблицу, поэтому при добавлении данных в таблицу Primary поле внешнего ключа представляет собой выпадающий список (который имеет верх и низ и упорядочен в алфавитном порядке).

Кроме того, я обнаружил, что когда любое новое значение добавляется в таблицу внешнего ключа, GUI переупорядочивает его в алфавитном порядке (поскольку в таблице внешнего ключа нет индексов для упорядочения). Это не имеет ничего общего со вставкой в ​​оператор.

1 Ответ

1 голос
/ 24 января 2020

Что вы можете сделать, чтобы вернуть значение, которое вы хотите получить как top , так это использовать условную сортировку в вашем операторе select:

select * 
from tablename
order by case when groupname = 'None' then 1 else 2 end 

Для Mysql это можно упростить до :

order by groupname <> 'None'

или:

order by groupname = 'None' desc

Сначала будет возвращена строка с 'None'. Измените groupname на фактическое имя столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...