Создайте табличную переменную в MySQL

Вы не можете в основном. Можно только использовать зафиксированные псевдонимы, такие как:

using Foo = System.Collections.Generic.KeyValuePair<int, string>;

class C { Foo x; }
45
задан Christopher Rapcewicz 8 December 2013 в 22:18
поделиться

2 ответа

Их не существует в MySQL, не так ли? Просто используйте временную таблицу:

CREATE PROCEDURE my_proc () BEGIN 

CREATE TEMPORARY TABLE TempTable (myid int, myfield varchar(100)); 
INSERT INTO TempTable SELECT tblid, tblfield FROM Table1; 

/* Do some more stuff .... */

Из MySQL здесь

"Вы можете использовать ключевое слово TEMPORARY при создании таблицы. ВРЕМЕННОЕ таблица видна только текущему соединение, и сброшено автоматически при подключении закрыто. Это означает, что два разных соединения могут использовать те же временные имя таблицы без противоречия с друг друга или с существующим ВНЕВРЕМЕННЫЙ одноименный стол. (Существующая таблица скрыта до тех пор, пока временная таблица удаляется.) "

65
ответ дан 26 November 2019 в 21:16
поделиться

Возможно, временная таблица сделает то, что вы хотите.

CREATE TEMPORARY TABLE SalesSummary (
product_name VARCHAR(50) NOT NULL
, total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
, avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
, total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
) ENGINE=MEMORY;

INSERT INTO SalesSummary
(product_name, total_sales, avg_unit_price, total_units_sold)
SELECT 
  p.name
  , SUM(oi.sales_amount)
  , AVG(oi.unit_price)
  , SUM(oi.quantity_sold)
FROM OrderItems oi
INNER JOIN Products p
    ON oi.product_id = p.product_id
GROUP BY p.name;

/* Just output the table */
SELECT * FROM SalesSummary;

/* OK, get the highest selling product from the table */
SELECT product_name AS "Top Seller"
FROM SalesSummary
ORDER BY total_sales DESC
LIMIT 1;

/* Explicitly destroy the table */
DROP TABLE SalesSummary; 

Из forge.mysql.com . См. Также часть временных таблиц в этой статье .

9
ответ дан 26 November 2019 в 21:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: