Вставить в & hellip; значения (SELECT & hellip; FROM & hellip;)

SSLHandshakeException может быть разрешен двумя способами.

  1. Включение SSL Получение SSL (путем запроса администратора системного администратора, также может быть загружено командой openssl, или любые браузеры загружают сертификаты). Добавьте сертификат в truststore (cacerts), расположенный в JRE / lib / security, предоставляет местоположение доверия в аргументах vm как «-Djavax.net.ssl.trustStore =»
  2. Игнорирование SSL. Для этого # 2, пожалуйста, посетите мой другой ответ на другом веб-сайте stackoverflow: Как проверить SSL-проверку Игнорировать ошибки сертификата SSL с помощью Java

1283
задан Braiam 29 May 2018 в 15:45
поделиться

4 ответа

Попытка:

INSERT INTO table1 ( column1 )
SELECT  col1
FROM    table2  

Это - стандартный ANSI SQL и должно работать над любым DBMS

, на который Он определенно работает:

  • Oracle
  • пост-ГРЭС SQL Server
  • MySQL
  • мс
  • второе полугодие
  • AWS RedShift SQLite v3
  • Teradata
  • DB2
  • Sybase
  • Vertica
  • HSQLDB
  • SAP ХАНА
1481
ответ дан Christian4145 29 May 2018 в 15:45
поделиться

Shadow_x99: Это должно хорошо работать, и у Вас может также быть несколько столбцов и другие данные также:

INSERT INTO table1 ( column1, column2, someInt, someVarChar )
SELECT  table2.column1, table2.column2, 8, 'some string etc.'
FROM    table2
WHERE   table2.ID = 7;

Редактирование: Я должен упомянуть, что только использовал этот синтаксис с Доступом, SQL 2000/2005/Express, MySQL и PostgreSQL, таким образом, те должны быть покрыты. Комментатор указал, что это будет работать с SQLite3.

854
ответ дан Community 29 May 2018 в 15:45
поделиться

Оба ответы, которые я вижу, хорошо работают в Informix и являются в основном стандартным SQL. Таким образом, нотация:

INSERT INTO target_table[(<column-list>)] SELECT ... FROM ...;

хорошо работает с Informix и, я ожидал бы, весь DBMS. (Однажды на 5 или больше лет назад, это - вид вещи, которую не всегда поддерживал MySQL; это теперь имеет достойную поддержку этого вида стандартного синтаксиса SQL и, AFAIK, это работало бы хорошо над этой нотацией.) Список столбцов является дополнительным, но указывает на целевые столбцы в последовательности, таким образом, первый столбец результата ВЫБОРА войдет в первый перечисленный столбец, и т.д. В отсутствие списка столбцов, первый столбец результата ВЫБОРА входит в первый столбец целевой таблицы.

то, Что может отличаться между системами, является нотацией, используемой для идентификации таблиц в различных базах данных - стандарт не имеет ничего для высказывания о межбазе данных (уже не говоря о меж-DBMS) операций. С Informix можно использовать следующую нотацию для идентификации таблицы:

[dbase[@server]:][owner.]table

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

table
"owner".table
dbase:table
dbase:owner.table
dbase@server:table
dbase@server:owner.table

владелец в целом не должен быть заключен в кавычки; однако при использовании кавычек необходимо было записать имя владельца правильно - это становится чувствительным к регистру. Это:

someone.table
"someone".table
SOMEONE.table

все определяют ту же таблицу. С Informix существует умеренная сложность с базами данных MODE ANSI, где имена владельца обычно преобразовываются в верхний регистр (informix, исключение). Таким образом, в базе данных MODE ANSI (не наиболее часто используемый), Вы могли записать:

CREATE TABLE someone.table ( ... )

и имя владельца в системном каталоге был бы "КТО-ТО", а не 'кто-то'. При включении имени владельца в двойные кавычки оно действует как выделенный идентификатор. Со стандартным SQL выделенные идентификаторы могут использоваться много мест. С Informix можно использовать их только вокруг имен владельца - в других контекстах, Informix рассматривает и единственно заключенные в кавычки и дважды заключенные в кавычки строки как строки, вместо того, чтобы разделить единственно заключенные в кавычки строки как строки и дважды заключенные в кавычки строки как выделенные идентификаторы. (Конечно, только для полноты, существует переменная среды, DELIMIDENT, который может быть установлен - на любое значение, но Y является самым безопасным - указать, что двойные кавычки всегда окружают выделенные идентификаторы, и одинарные кавычки всегда окружают строки.)

Примечание, которое SQL Server MS удается использовать [выделенные идентификаторы], включенные в квадратные скобки. Это выглядит странным мне и является, конечно, не частью стандарта SQL.

57
ответ дан Jonathan Leffler 29 May 2018 в 15:45
поделиться

В informix это работает, как сказал Claude:

INSERT INTO table (column1, column2) 
VALUES (value1, value2);    
0
ответ дан 19 December 2019 в 20:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: