Aller au contenu principal
Page traduite

Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.

INSERT

Crée une ou plusieurs nouvelles instances d'une ressource.

Voir aussi :
[ Hiérarchie des ressources StackQL ]


Syntaxe​

insertStatement::=

INSERTawaitQueryHintIGNOREINTOmultipartIdentifier'('fieldList')'selectStatementVALUES'('fieldList')'RETURNINGfieldList';'

 
 

INSERT [ /*+ AWAIT */ ] [ IGNORE ] [ INTO ] <multipartIdentifier>
( field_name [, field_name] ... )
{ VALUES ( value [, value] ... ) | <selectExpression> }
[ RETURNING field_name [, field_name] ... ];

Clause RETURNING​

La clause RETURNING permet de récupérer des données de la réponse de l'opération INSERT. Elle est particulièrement utile lorsque :

  • L'API renvoie des informations importantes telles que des ID générés, des codes d'état ou d'autres métadonnées
  • Vous devez capturer les données de la réponse pour un traitement ultérieur
  • Vous souhaitez vérifier le résultat de l'opération

Les champs indiqués dans la clause RETURNING sont désérialisés à partir de la réponse de l'API et affichés dans le jeu de résultats.


Exemples​

Instruction INSERT de base​

Exécutez une instruction INSERT pour créer une ressource disque Compute Engine. Il s'agit d'un appel non bloquant (asynchrone).

-- Create a Compute Engine Disk resource
INSERT INTO google.compute.disks (project, zone, name, sizeGb)
SELECT 'stackql-demo',
'australia-southeast1-a',
'test10gbdisk', 10;

Instruction INSERT (bloquante)​

Exécutez une instruction INSERT pour créer une ressource disque Compute Engine. Il s'agit d'un appel bloquant (synchrone).

-- Create a Compute Engine Disk resource
INSERT /*+ AWAIT */ INTO google.compute.disks (project, zone, name, sizeGb)
SELECT 'stackql-demo',
'australia-southeast1-a',
'test10gbdisk', 10;

Instruction INSERT avec SELECT​

Exécutez une instruction INSERT avec SELECT.

-- Create a Azure Network Interface
INSERT INTO azure.network.network_interfaces
(
resource_group_name,
subscription_id,
network_interface_name,
data__location,
data__properties
)
SELECT
'vmss-flex',
'0123456789',
'vmss-flex-vnet-nic01-manual-' || '1',
'eastus',
json_replace(json_remove(properties,
'$.allowPort25Out',
'$.auxiliarySku',
'$.provisioningState',
'$.resourceGuid',
'$.macAddress',
'$.vnetEncryptionSupported',
'$.enableIPForwarding',
'$.defaultOutboundAccess',
'$.primary',
'$.virtualMachine',
'$.hostedWorkloads',
'$.tapConfigurations',
'$.nicType',
'$.auxiliaryMode',
'$.ipConfigurations[0].id',
'$.ipConfigurations[0].etag',
'$.ipConfigurations[0].type',
'$.ipConfigurations[0].properties.provisioningState',
'$.ipConfigurations[0].properties.privateIPAddress',
'$.ipConfigurations[0].properties.privateIPAllocationMethod',
'$.ipConfigurations[0].properties.primary',
'$.ipConfigurations[0].properties.privateIPAddressVersion'
),
'$.ipConfigurations[0].name',
'vmss-flex-vnet-nic01-defaultIpConfiguration'
)
FROM
azure.network.network_interfaces
WHERE subscription_id = '0123456789'
AND resource_group_name = 'vmss-flex'
AND network_interface_name = 'vmss-nic-01';

Instruction INSERT avec la clause RETURNING​

Exécutez une instruction INSERT et récupérez des champs précis de la réponse de l'API.

-- Execute a Snowflake SQL statement and return the response data
INSERT INTO snowflake.sqlapi.statements (
data__statement,
data__timeout,
data__database,
data__schema,
"User-Agent",
endpoint
)
SELECT
'SELECT
customer_id,
customer_name,
email,
credit_card_number,
purchase_amount,
purchase_date
FROM CUSTOMER_DATA',
10,
'MY_DATABASE',
'MY_SCHEMA',
'User-Agent',
'ABCDEF-XY12345'
RETURNING code, sqlState, message, data;

Résultat :

|--------|----------|--------------------------------|-----------------------------------------------------------------------------|
| code | sqlState | message | data |
|--------|----------|--------------------------------|-----------------------------------------------------------------------------|
| 090001 | 00000 | Statement executed | [["1","John |
| | | successfully. | Smith","john.smith@example.com","***MASKED***","199.99","20262"],["1","John |
| | | | Smith","john.smith@example.com","***MASKED***","199.99","20263"]] |
|--------|----------|--------------------------------|-----------------------------------------------------------------------------|