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

Подзаявка като генерирана колона в mysql?

https://dev.mysql.com /doc/refman/5.7/en/create-table-generated-columns.html

Разумно е изразът за генерирана колона да може да препраща само колони в един и същи ред. Генерираната колона не може да използва подзаявки или да препраща към други таблици или функции с недетерминиран изход.

Да предположим, че генерираните колони поддържат препратки към кръстосани таблици. По-специално помислете за случая на STORED генерирани колони.

Ако актуализирате таблица, MySQL също ще трябва да актуализира всички препратки в генерирани колони другаде в базата данни, ако те препращат към реда, който сте актуализирали. Би било сложно и скъпо за MySQL да проследи всички тези препратки.

След това помислете за добавяне на непреки препратки чрез съхранени функции.

След това помислете, че вашата актуализация е към таблица на InnoDB в транзакция, но генерираната колона може да е в таблица без транзакции (MyISAM, MEMORY, ARCHIVE и т.н.). Трябва ли вашата актуализация да бъде отразена в тези генерирани колони, когато я направите? Ами ако се върнете назад? Трябва ли вашата актуализация да бъде отразена в момента, в който се ангажирате? Тогава как трябва MySQL да "нареди на опашка" промените, за да се прилагат към тези таблици? Ами ако множество транзакции извършват актуализации, които засягат генерираната препратка към колона? Кой трябва да спечели, този, който е приложил промяната последен или този, който е извършил последно?

Поради тези причини не е практично или ефективно да се позволява на генерираните колони да препращат към нещо различно от колоните на същия ред в същата таблица.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проблем с PDO bindParam

  2. Подаване на името на таблицата като параметър на подготвената инструкция

  3. Преобразуване на обект в низ в PHP

  4. MySQL условно АКТУАЛИЗИРА булевите стойности на колоните на редовете въз основа на бял списък с идентификатори

  5. задайте current_timestamp само при вмъкване на нов ред