Get or create a table
Stay organized with collections
Save and categorize content based on your preferences.
Get table details if it exists, or autocreate a table if it does not exist.
Code sample
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],[],[[["\u003cp\u003eThis content demonstrates how to retrieve table details from Bigtable if the table exists.\u003c/p\u003e\n"],["\u003cp\u003eIt outlines the process of automatically creating a table in Bigtable if it does not already exist.\u003c/p\u003e\n"],["\u003cp\u003eThe content includes code examples in C++ that showcase the table retrieval and creation process using the Bigtable client library.\u003c/p\u003e\n"],["\u003cp\u003eThe code provided can be used to authenticate to Bigtable.\u003c/p\u003e\n"],["\u003cp\u003eIt also mentions the use of the Google Cloud sample browser to search for additional code examples.\u003c/p\u003e\n"]]],[],null,["Get table details if it exists, or autocreate a table if it does not exist.\n\nCode sample \n\nC++\n\n\nTo learn how to install and use the client library for Bigtable, see\n[Bigtable client libraries](/bigtable/docs/reference/libraries).\n\n\nTo authenticate to Bigtable, set up Application Default Credentials.\nFor more information, see\n\n[Set up authentication for a local development environment](/docs/authentication/set-up-adc-local-dev-environment).\n\n namespace cbt = ::google::cloud::bigtable;\n namespace cbta = ::google::cloud::bigtable_admin;\n using ::google::cloud::StatusOr;\n [](cbta::BigtableTableAdminClient admin, std::string const& project_id,\n std::string const& instance_id, std::string const& table_id) {\n std::string instance_name = cbt::InstanceName(project_id, instance_id);\n std::string table_name = cbt::TableName(project_id, instance_id, table_id);\n\n google::bigtable::admin::v2::GetTableRequest r;\n r.set_name(table_name);\n r.set_view(google::bigtable::admin::v2::Table::FULL);\n\n StatusOr\u003cgoogle::bigtable::admin::v2::Table\u003e table = admin.GetTable(r);\n if (!table &&\n table.status().code() == google::cloud::StatusCode::kNotFound) {\n // The table does not exist, try to create the table.\n table = admin.CreateTable(instance_name, table_id, {});\n if (!table) throw std::move(table).status();\n // The schema returned by a `CreateTable()` request does not include all\n // the metadata for a table, we need to explicitly request the rest:\n table = admin.GetTable(std::move(r));\n }\n if (!table) throw std::move(table).status();\n std::cout \u003c\u003c \"Table metadata: \" \u003c\u003c table-\u003eDebugString() \u003c\u003c \"\\n\";\n }\n\nWhat's next\n\n\nTo search and filter code samples for other Google Cloud products, see the\n[Google Cloud sample browser](/docs/samples?product=bigtable)."]]