POST в первую строку таблицы базы данных?

Обновлено: это было решено - см. Комментарии

У меня есть таблица электронных таблиц, построенная на интерфейсе моего веб-сайта. Пользователи хотят иметь возможность нажать кнопку «Добавить строку», чтобы добавить новую пустую строку в первую строку этой электронной таблицы.

Я пытаюсь придумать, как это сделать, а не добавлять строку в конец таблицы, что легко, поскольку мой столбец ID primary key автоматически увеличивается с помощью моих настроек Microsoft SQL Server Management Studio.

Но как вы справитесь с этой ситуацией, когда вам нужно добавить новую строку в начало таблицы базы данных? Когда я помещаю новую строку в базу данных, она должна иметь идентификатор 1, а все остальные идентификаторы ниже этой строки должны увеличиваться на 1 для компенсации. Это то, что я сейчас пытаюсь сделать, но Microsoft SQL Server Management Studio не делает этого за меня. Запрос POST моей новой строки проходит без ошибок, но никогда не отображается ни в моей базе данных, ни при обновлении страницы моей электронной таблицы внешнего интерфейса.

В настоящее время, когда нажимается моя кнопка New Row, срабатывает событие addRow, которое выглядит следующим образом:

  addRow(args) {
        const self = this;
        var sheet = self.spread.getActiveSheet();
        changedSheet.addRows(0, 1);
        Var apiURL = "api/myTable";

            var jsonObject = {
                ID: 1
            };

            for ( var i=1; i<this.spreadColumns.length; i++) {
                jsonObject[this.spreadColumns[i]] = changedSheet.getValue(args.row, i);
               // WHEN FOR LOOP FINISHED, SUBMIT POST REQUEST
                if (this.spreadColumns.length - 1 === i) {
                    this.databaseServoce.post(apiURL, jsonObject);
                }
            }
  }

Помогите мне, Джон Скит - ты моя единственная надежда.

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

Sean Lange 08.10.2018 18:17
and every other ID below that row should increase by 1 to compensate может быть проблематичным, если у вас много данных в данных, и это не очень хорошая практика. Разве вы не можете просто display ваши данные упорядочить по убыванию? поэтому, когда они добавляют новую строку, она будет отображаться как первая, но идентификатор будет +1 последней
demircioglu 08.10.2018 18:45

Спасибо вам обоим - вы правы. Имея это в виду, я все еще не могу заставить мой POST работать при создании новой строки. Я считаю, что это потому, что мой столбец первичного ключа (ID) не может принимать нулевые значения, но я отправляю нулевые значения для своей новой пустой строки на переднем конце. Я думал, что, возможно, база данных автоматически включит поле идентификатора на бэкэнде, независимо от того, что для него установлено автоматическое приращение. Но, видимо, нет. Пытается найти способ успешно отправить пустую строку в базу данных. Или, по крайней мере, как разместить новую итерацию моего первичного ключа в этой новой строке программно из внешнего интерфейса.

Kyle Vassella 09.10.2018 21:31

АА, вижу. В моем случае мне нужно было вызвать метод .subscribe () (я использую Angular) после моего POST. Без этого я не получал никаких ошибок, но мой POST не заполнял базу данных. См. Здесь: stackoverflow.com/a/49205778/6647188 На этой заметке, если кто-то из вас хочет, не стесняйтесь размещать свои комментарии выше в качестве ответа, и я помечу его как Принято. Большое спасибо за вашу помощь с моим первым вопросом.

Kyle Vassella 10.10.2018 00:41
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
0
4
51
0

Другие вопросы по теме