Импорт из таблицы Excel в таблицу базы данных - PullRequest
2 голосов
/ 20 февраля 2012

Я пытаюсь вставить данные в таблицу БД из листа MS Excel 2007 с помощью функции импорта.Проблема в том, что у моей таблицы БД есть первичный ключ auto_incremented.Это в основном означает, что в листе Excel по практическим причинам не может существовать столбец, который будет действовать как данные первичного ключа, так как редакторам будет утомительно продолжать ввод данных вручную [лист Excel для таблицы можно добавить несколько раз.отсюда время, когда ведение табуляции последнего числа в столбце первичного ключа - не очень хорошая идея].

В этом и заключается проблема. Функция импорта отказывается вставлять информацию в конкретную таблицу, носкорее создает новую таблицу в базе данных и вводит туда информацию.Чтобы противостоять этому, вторая стратегия состояла бы в том, чтобы иметь триггер или хранимую процедуру, которая выполняет периодический [меня не волнует семантика того, когда и как это будет выполняться]: INSERT INTO requiredDbColumn SELECT *
FROM excelSheetTable

Однако на самом деле это не сработает, так как в excelSheetTable и requiredDbColumn имеется несоответствие значений / столбцов, поскольку в excelSheetTable имеется только (n-1) число столбцов, созданных из загруженного листа Excel, против обязательногоDbColumnимеет n столбцов, дополнительный столбец является столбцом первичного ключа.

Я установил первичный ключ на автоматическое увеличение, поэтому я не уверен, почему INSERT INTO, SELECT указывает количество столбцов / количество значенийнесоответствие.

Это общая проблема, у кого-нибудь есть решение для этого?

Спасибо!

1 Ответ

0 голосов
/ 20 февраля 2012

Когда я делаю INSERT, я обычно даю «значения» для всех полей для вновь вставленной строки.Моя вставка также автоматически автоматически увеличивает поле первичного ключа.

Вот выдержка из одной из моих команд INSERT:

INSERT INTO Security.Memberships VALUES (185790, '1461459','asdf',NULL,NULL,1,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL)

Возможно, вам нужна более полная команда INSERT?

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