Oracle
 sql >> база данни >  >> RDS >> Oracle

Как мога условно да конструирам име на таблица за оператор SQL CREATE TABLE?

В Oracle синтаксисът би бил нещо като

BEGIN
  EXECUTE IMMEDIATE 'CREATE TABLE CUSTOMER_'||v_company_id||' (..)';
END;

Това обаче вероятно е наистина лоша идея. Шест месеца по-късно ще искате да добавите колона към таблицата и ще трябва да разберете към кои таблици трябва да я добавите.

Също така, съхранените процедури в Oracle се нуждаят от фиксирано име на таблица (на съществуваща таблица) или ще трябва да препращате към всичко чрез динамичен SQL, което е болка.

По-добре да имате единична клиентска таблица с company_id като атрибут. След това използвайте Fine Grained Access Control за сигурно филтриране на company_id, за да контролирате кой вижда данните на каква компания.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle PL/SQL Създаване на таблици в курсора?

  2. Oracle SQL:Как да използвате повече от 1000 елемента в клауза IN

  3. Lighty за Oracle

  4. Oracle DB:Как мога да напиша заявка без главни и главни букви?

  5. Намерете дължината на най-дългия ред в колона в оракул