Я вставил несколько строк в базу данных vertica, используя команду вставки на терминале. Это отображается, когда я читаю запись с помощью команды выбора. Но я не могу видеть запись при подключении к базе данных с использованием соединения ODBC, также я могу найти эту строку при перезапуске vertica.Пожалуйста, помогите мне решить проблему.
Подключитесь к базе данных vertica с помощью odbc в asp.net и верните набор данных.
Ответы (4)
Вы сделали COMMIT;
после того, как вставили строки? Это простая вещь, но я сам много раз упускал из виду в прошлом.
Чтобы немного уточнить ответ Бобби В.
Когда вы выполняете вставку, он покажет данные для вашего текущего сеанса. Это позволяет пользователю выполнять операции и использовать «временные» данные, не влияя/искажая то, что делают другие люди. Это данные на основе сеанса. Вот почему вы можете вставлять и просматривать данные, но при подключении из 2-го источника не можете их увидеть.
Чтобы «зафиксировать» данные в базе данных, вам нужно выполнить оператор COMMIT;
, как упоминал Бобби В.
Неспособность выдать COMMIT;
— это то, что я также упускал из виду несколько раз.
Чтобы уточнить, вы можете увидеть строки после перезапуска? Вы подключаетесь к базе данных как один и тот же пользователь из ODBC и vsql?
По умолчанию уровень ISOLATION Vertica находится в режиме READ COMMITTED, что означает, что другие сеансы только читают данные, которые являются COMMITTED. Если вы вставили, но не зафиксировали, на этом уровне другие сеансы не могут прочитать вставленные вами данные.