Insert rows with no IDs

Insert rows without row IDs in a table.

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

Java

Before trying this sample, follow theJava setup instructions in theBigQuery quickstart using client libraries. For more information, see theBigQueryJava API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, seeSet up authentication for client libraries.

importcom.google.cloud.bigquery.BigQuery;importcom.google.cloud.bigquery.BigQueryError;importcom.google.cloud.bigquery.BigQueryException;importcom.google.cloud.bigquery.BigQueryOptions;importcom.google.cloud.bigquery.InsertAllRequest;importcom.google.cloud.bigquery.InsertAllResponse;importcom.google.cloud.bigquery.TableId;importcom.google.common.collect.ImmutableList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;// Sample to insert rows without row ids in a tablepublicclassTableInsertRowsWithoutRowIds{publicstaticvoidmain(String[]args){// TODO(developer): Replace these variables before running the sample.StringdatasetName="MY_DATASET_NAME";StringtableName="MY_TABLE_NAME";tableInsertRowsWithoutRowIds(datasetName,tableName);}publicstaticvoidtableInsertRowsWithoutRowIds(StringdatasetName,StringtableName){try{// Initialize client that will be used to send requests. This client only needs to be created// once, and can be reused for multiple requests.finalBigQuerybigquery=BigQueryOptions.getDefaultInstance().getService();// Create rows to insertMap<String,Object>rowContent1=newHashMap<>();rowContent1.put("stringField","Phred Phlyntstone");rowContent1.put("numericField",32);Map<String,Object>rowContent2=newHashMap<>();rowContent2.put("stringField","Wylma Phlyntstone");rowContent2.put("numericField",29);InsertAllResponseresponse=bigquery.insertAll(InsertAllRequest.newBuilder(TableId.of(datasetName,tableName))// No row ids disable de-duplication, and also disable the retries in the Java// library..setRows(ImmutableList.of(InsertAllRequest.RowToInsert.of(rowContent1),InsertAllRequest.RowToInsert.of(rowContent2))).build());if(response.hasErrors()){// If any of the insertions failed, this lets you inspect the errorsfor(Map.Entry<Long,List<BigQueryError>>entry:response.getInsertErrors().entrySet()){System.out.println("Response error: \n"+entry.getValue());}}System.out.println("Rows successfully inserted into table without row ids");}catch(BigQueryExceptione){System.out.println("Insert operation not performed \n"+e.toString());}}}

PHP

Before trying this sample, follow thePHP setup instructions in theBigQuery quickstart using client libraries. For more information, see theBigQueryPHP API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, seeSet up authentication for client libraries.

use Google\Cloud\BigQuery\BigQueryClient;/** * Insert rows into the given table with explicitly giving row ids. * * @param string $projectId The project Id of your Google Cloud Project. * @param string $datasetId The BigQuery dataset ID. * @param string $tableId The BigQuery table ID. * @param string $rowData1 Json encoded data to insert. * @param string $rowData2 Json encoded data to insert. For eg, *    $rowData1 = json_encode([ *        "field1" => "value1", *        "field2" => "value2" *    ]); *    $rowData2 = json_encode([ *        "field1" => "value1", *        "field2" => "value2" *    ]); */function table_insert_rows_explicit_none_insert_ids(    string $projectId,    string $datasetId,    string $tableId,    string $rowData1,    string $rowData2): void {    $bigQuery = new BigQueryClient([        'projectId' => $projectId,    ]);    $dataset = $bigQuery->dataset($datasetId);    $table = $dataset->table($tableId);    $rowData1 = json_decode($rowData1, true);    $rowData2 = json_decode($rowData2, true);    // Omitting insert Id's in following rows.    $rows = [        ['data' => $rowData1],        ['data' => $rowData2]    ];    $insertResponse = $table->insertRows($rows);    if ($insertResponse->isSuccessful()) {        printf('Rows successfully inserted into table without insert ids' . PHP_EOL);    } else {        foreach ($insertResponse->failedRows() as $row) {            foreach ($row['errors'] as $error) {                printf('%s: %s' . PHP_EOL, $error['reason'], $error['message']);            }        }    }}

Python

Before trying this sample, follow thePython setup instructions in theBigQuery quickstart using client libraries. For more information, see theBigQueryPython API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, seeSet up authentication for client libraries.

fromgoogle.cloudimportbigquery# Construct a BigQuery client object.client=bigquery.Client()# TODO(developer): Set table_id to the ID of table to append to.# table_id = "your-project.your_dataset.your_table"rows_to_insert=[{"full_name":"Phred Phlyntstone","age":32},{"full_name":"Wylma Phlyntstone","age":29},]errors=client.insert_rows_json(table_id,rows_to_insert,row_ids=[None]*len(rows_to_insert))# Make an API request.iferrors==[]:print("New rows have been added.")else:print("Encountered errors while inserting rows:{}".format(errors))

What's next

To search and filter code samples for other Google Cloud products, see theGoogle Cloud sample browser.

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.