我在 MySQL 工作台中创建了一个模型 (EER / ERD)。通过数据库|正向工程,我将数据模型放入本地 MySQL 数据库中。这很有效;我看到了所有的表、约束、索引……
但是我的模型中也有数据行,我希望这些数据行也能插入到数据库表中。但这并没有发生。
我可以同步模型和数据库,但这似乎总是只影响数据库结构,而不是数据。
如何将模型中的数据(表格行)导入数据库?
我在 MySQL 工作台中创建了一个模型 (EER / ERD)。通过数据库|正向工程,我将数据模型放入本地 MySQL 数据库中。这很有效;我看到了所有的表、约束、索引……
但是我的模型中也有数据行,我希望这些数据行也能插入到数据库表中。但这并没有发生。
我可以同步模型和数据库,但这似乎总是只影响数据库结构,而不是数据。
如何将模型中的数据(表格行)导入数据库?
有没有一种巧妙的方法来聚合 PL/SQL 中的表数据并在一个查询中获取单个值和集合?换句话说,我们能否轻松组合以下两个查询
SELECT AVG(sal)
INTO v_sal
FROM emp;
SELECT DISTINCT deptno
BULK COLLECT INTO v_deptnos
FROM emp;
变成这样的东西:
SELECT AVG(sal), ARRAY_AGG(DISTINCT deptno)
INTO v_sal, v_deptnos
FROM emp;
建议将 Oracle PL/SQL 函数声明为PARALLEL_ENABLE
可以并行化,以便 DBMS 知道它可以并行运行该函数。
但是函数什么时候可以并行化呢?或者更确切地说:什么时候不是?
让我们看一个例子:
CREATE OR REPLACE FUNCTION get_country_name(p_country_code VARCHAR2) RETURN VARCHAR2
PARALLEL_ENABLE
AS
PRAGMA UDF;
v_country_name country.name%TYPE;
BEGIN
SELECT name INTO v_country_name
FROM country
WHERE code = p_country_code;
RETURN v_country_name;
EXCEPTION WHEN OTHERS THEN
RETURN NULL;
END;
该函数选择给定国家/地区代码的国家/地区名称,例如“法国”代表“FR”。我将其设为 UDF,因为我将主要在 SQL 查询中使用它,并且我将其设为并行启用,因为,那么它可以更好地工作select /*+parallel(4)*/ get_country_name(code) from ...
- 这就是它的意思吗?或者还有什么?
为什么我可以声明这个函数PARALLEL_ENABLE
?到底是什么让它可以并行化?我可以声明我的所有功能PARALLEL_ENABLE
吗?那我就应该这样,不是吗?或者有什么情况会阻止这种情况发生?什么会阻止函数并行化?