Просмотр содержимого и ограничений таблицы - PullRequest
0 голосов
/ 28 февраля 2019

Я работаю над этим вопросом о назначении, и он спрашивает меня:

  1. Чтобы создать таблицу с именем (TEMP_CUST) из существующей таблицы Customers
  2. Просмотретьсодержимое и ограничения TEMP_CUST table

До сих пор я создал свою таблицу, не добавил никаких ограничений в таблицу TEMP_CUST и просмотрел ее с помощью DESC команда.

Вот код для создания таблицы

CREATE TABLE TEMP_CUST 
AS 
    (SELECT 
         CUSTOMER#, LASTNAME, 
         FIRSTNAME, ADDRESS, CITY, 
         STATE, ZIP, REFERRED, 
         REGION, EMAIL 
     FROM 
         CUSTOMERS);

DESC TEMP_CUST;

Теперь, когда я сделал это, я хочу просмотреть ограничения таблицы.Я использовал эту команду, но не уверен, что она правильная.

SELECT * 
FROM USER_CONSTRAINTS 
WHERE TABLE_NAME = 'TEMP_CUST';

1 Ответ

0 голосов
/ 28 февраля 2019

Я использовал эту команду, но не уверен, что она правильная.

Вы не сказали, почему не думаете, что это правильно, поэтому мы должны угадать причинутвое сомнениеВозможно, это потому, что набор ограничений, которые вы получаете, меньше, чем набор ограничений для исходной таблицы CUSTOMERS?

Это правильно.Когда мы используем CREATE TABLE ... AS SELECT, оператор создает новую таблицу с проекцией, именами столбцов и типами данных исходных таблиц (при условии ванильного предложения SELECT) и данными (определяемыми предложением WHERE, если оно есть).Однако единственными создаваемыми ограничениями являются ограничения NOT NULL для столбцов первичного ключа и любых других обязательных столбцов.Новая таблица не имеет первичного ключа, внешнего ключа или проверочных ограничений.Мы должны создать это явно.

Следовательно, этот запрос ...

SELECT * FROM USER_CONSTRAINTS 
WHERE TABLE_NAME = 'TEMP_CUST';

... может вернуть меньше ограничений, чем вы ожидали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...