AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题

问题[database](coding)

Martin Hope
Anthonyx82
Asked: 2025-04-24 19:30:07 +0800 CST

在 Oracle 19c 上的数据泵导入期间,REMAP_DATAFILE 不起作用

  • 6

我正在尝试将完整的数据库转储导入impdp到不同的 Oracle 19c(标准版 2)环境中,但该REMAP_DATAFILE参数似乎不起作用。

我的目标是将转储从名为db_source的源数据库导入到名为db_target的目标数据库中,将所有数据文件重定向到不同的文件夹路径(/opt/oracle/oradata/oradata/DB_TARGET/pdb_target/),因为不同环境的文件系统结构不同。

.par这是我的文件中的内容:

REMAP_DATAFILE=/opt/oracle/oradata/oradata/DB_SOURCE/:/opt/oracle/oradata/oradata/DB_TARGET/pdb_target/

但是,我不断收到如下错误:

ORA-39083: Object type TABLESPACE:"DATOSLOB" failed to create with error:
ORA-01119: error in creating database file '/opt/oracle/oradata/oradata/DB_SOURCE/DATOSLOB_01'
ORA-27038: created file already exists

我已确认我已pdb_target使用 连接到正确的 PDB ( ) SHOW CON_NAME;。

我还使用生成了 SQL 预览SQLFILE=preview.sql并注意到数据文件路径没有被重新映射,它们仍然指向/opt/oracle/oradata/oradata/DB_SOURCE/。

我发现有人在这里遇到同样的问题(仍未解决):https://forums.oracle.com/ords/apexds/post/data-pump-datafile-remapping-does-not-work-5729

如何REMAP_DATAFILE在 Oracle 19c 上正常工作?是否有其他要求或已知错误?

database
  • 1 个回答
  • 32 Views
Martin Hope
Amgad Deyaa
Asked: 2025-04-14 17:40:47 +0800 CST

为什么在 GORM 中从带有 PK 字段的地图创建记录时会出错,这是一个有效的用例吗?

  • 5

我一直在从官方文档学习 GORM,当尝试使用 Create() 函数从地图创建记录时遇到了一些困惑。

官方文档展示了从地图创建记录的示例:

// Single insert
db.Model(&User{}).Create(map[string]interface{}{
  "Name": "jinzhu", "Age": 18,
})

// Batch insert
db.Model(&User{}).Create([]map[string]interface{}{
  {"Name": "jinzhu_1", "Age": 18},
  {"Name": "jinzhu_2", "Age": 20},
})

但问题是——如果表没有定义主键 (PK),这种方法可以正常工作。但是,如果我定义了一个主键字段(例如user_id),就会出错。据我所知,每个表都必须有一个主键才能进行规范化,那么为什么这种方法在没有主键的情况下也能正常工作呢?

如果表有主键,从 map 创建记录有什么有效的用例吗?在这种情况下,GORM 会自动处理主键吗?还是我遗漏了什么,导致它真的无法处理主键?

我还想知道文档中的示例是否真的写得很好,或者是否需要对带有主键的表进行修改。处理带有主键的表时,我应该使用结构体而不是映射吗?

database
  • 1 个回答
  • 31 Views
Martin Hope
TeknoSenpai
Asked: 2025-03-22 17:08:20 +0800 CST

在 Exposed 中插入默认值时出错

  • 6

每当我尝试在 Users 表中创建并插入新用户时(使用User.newDAO 方法或Users.insert方法),具有默认值且被描述为非空的枚举字段 accountstatus 会导致插入失败null value in column "accountstatus" violates not-null constraint。

以下是表定义和用户 DAO 的代码:

 object Users : UUIDTable() {
     val email = varchar("email", 255).uniqueIndex()
     val role = enumeration<Role>("role")
     val registrationDate =
         datetime("registrationDate").default(Clock.System.now().toLocalDateTime(TimeZone.currentSystemDefault()))
     val disabledDate = datetime("disabledDate").nullable()
     val accountStatus = enumeration<AccountStatus>("accountStatus").default(AccountStatus.ACTIVE)
 
     enum class Role {
         PROFESSOR, STUDENT
     }
 
     enum class AccountStatus {
         ACTIVE, DISABLED
     }
 }

 class User(id: EntityID<UUID>) : UUIDEntity(id), UserData {
     companion object : UUIDEntityClass<User>(Users)
 
     override var email by Users.email
     override var role by Users.role
     override val registrationDate by Users.registrationDate
     override var disabledDate by Users.disabledDate
     override var accountStatus by Users.accountStatus
     val sessions by Session referrersOn Sessions.userId
 }

以下是引发异常的代码:

 // ...
 transaction {
     User.new {
         email = email /* logic omitted */
         role = role /* logic omitted */
     }
 }
database
  • 1 个回答
  • 35 Views
Martin Hope
fblundun
Asked: 2025-02-25 21:44:51 +0800 CST

如何等待 Elasticsearch 完成克隆索引?

  • 6

我正在使用 JavaScript 客户端库以多步骤过程对 Elasticsearch 进行重新索引:

  • 将名为“old”的索引克隆到名为“new”的新索引
  • 删除“旧”索引
  • 将“新”索引重新索引为“旧”索引
  • 删除“新”索引

我需要等待第一步完成后才能执行后续步骤。是否有一个 Elasticsearch 端点可以轮询以了解克隆何时完成?

database
  • 2 个回答
  • 23 Views
Martin Hope
Sanyokk
Asked: 2025-01-18 22:19:34 +0800 CST

错误:在表“promos”上插入或更新违反外键约束“fk_businesses_promos”[重复]

  • 5
此问题这里已有答案:
GORM 插入或更新表时出错,违反外键约束 (2 个答案)
11 小时前关闭。

我正在尝试使用 go 特别是 GORM 构建 REST API。

我的实体看起来像这样:

type Business struct {
    ID        string    `json:"id" gorm:"primaryKey;not null;type:uuid;default:gen_random_uuid()"`
    CreatedAt time.Time `json:"-"`
    UpdatedAt time.Time `json:"-"`

    Email    string `json:"email" gorm:"uniqueIndex;not null;"`
    Password []byte `json:"-"`
    Name     string `json:"name"`

    Promos []Promo `json:"promos" gorm:"foreignKey:CompanyID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
}
type Promo struct {
    PromoID   string    `json:"id" gorm:"primaryKey;not null;type:uuid;default:gen_random_uuid()"`
    CompanyID string    `json:"company_id" gorm:"not null;foreignKey:ID"`
    CreatedAt time.Time `json:"-"`
    UpdatedAt time.Time `json:"-"`

    Target      Target        `json:"target" gorm:"foreignKey:TargetID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE;not null"`
    Active      bool          `json:"-" gorm:"default:true"`
    ActiveFrom  time.Time     `json:"active_from"`
    ActiveUntil time.Time     `json:"active_until"`
    Description string        `json:"description" gorm:"not null"`
    ImageURL    string        `json:"image_url"`
    MaxCount    int           `json:"max_count" gorm:"not null"`
    Mode        string        `json:"mode" gorm:"not null"`
    PromoCommon string        `json:"promo_common"`
    PromoUnique []PromoUnique `json:"promo_unique" gorm:"foreignKey:PromoUniqueID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
}

type PromoUnique struct {
    PromoUniqueID string `json:"-" gorm:"primaryKey;not null;type:uuid;default:gen_random_uuid()"`
    Body          string `json:"-" gorm:"not null"`
    Activated     bool   `json:"-" gorm:"default:false"`
}

type Target struct {
    TargetID   string                `json:"-" gorm:"primaryKey;not null;type:uuid;default:gen_random_uuid()"`
    AgeFrom    int                   `json:"age_from"`
    AgeUntil   int                   `json:"age_until"`
    Country    countries.CountryCode `json:"country"`
    Categories []Category            `json:"categories" gorm:"foreignKey:CategoryID;constraint:OnUpdate:CASCADE,OnDelete:CASCADE"`
}

type Category struct {
    CategoryID string `json:"id" gorm:"primaryKey;not null;type:uuid;default:gen_random_uuid()"`
    TargetID   string `json:"-" gorm:"not null"`
    Name       string `json:"name" gorm:"not null"`
}

我的服务代码如下所示:

func (s *promoService) Create(ctx context.Context, promoDTO dto.PromoCreate) (*entity.Promo, error) {

    activeFrom, _ := time.Parse("2006-01-02", promoDTO.ActiveFrom)
    activeUntil, _ := time.Parse("2006-01-02", promoDTO.ActiveUntil)
    var categories []entity.Category
    var promoUniques []entity.PromoUnique
    for _, category := range promoDTO.Target.Categories {
        categories = append(categories, entity.Category{
            Name: category,
        })
    }
    for _, promoUnique := range promoDTO.PromoUnique {
        promoUniques = append(promoUniques, entity.PromoUnique{
            Body: promoUnique,
        })
    }

    company, _ := s.businessStorage.GetByID(ctx, promoDTO.CompanyID)

    promo := entity.Promo{
        Target: entity.Target{
            AgeFrom:    promoDTO.Target.AgeFrom,
            AgeUntil:   promoDTO.Target.AgeUntil,
            Country:    countries.ByName(strings.ToUpper(promoDTO.Target.Country)),
            Categories: categories,
        },
        CompanyID:   company.ID,
        Active:      true,
        ActiveFrom:  activeFrom,
        ActiveUntil: activeUntil,
        Description: promoDTO.Description,
        ImageURL:    promoDTO.ImageURL,
        MaxCount:    promoDTO.MaxCount,
        Mode:        promoDTO.Mode,
        PromoCommon: promoDTO.PromoCommon,
        PromoUnique: promoUniques,
    }

    company.Promos = append(company.Promos, promo)
    _, err := s.businessStorage.Update(ctx, company)
    if err != nil {
        return nil, err
    }

    return s.promoStorage.Create(ctx, promo)
}

我的存储如下所示:

// Create is a method to create a new Promo in database.
func (s *promoStorage) Create(ctx context.Context, promo entity.Promo) (*entity.Promo, error) {
    err := s.db.Model(&promo).WithContext(ctx).Create(&promo).Error
    return &promo, err
}

但是当我尝试到达端点时出现此错误:

/opt/internal/adapters/database/postgres/promo.go:22 ERROR: insert or update on table "promos" violates foreign key constraint "fk_businesses_promos" (SQLSTATE 23503)       

我该怎么办?我在 stackoverflow 上研究了一些有同样问题的其他问题,但都没有帮助我。

database
  • 2 个回答
  • 48 Views
Martin Hope
ashish
Asked: 2025-01-10 01:53:18 +0800 CST

Postgres 是否支持带有复合外键的“ON DELETE CASCADE”

  • 6

我的桌子是这样的

CREATE TABLE T1(
id uuid not null,
order_time timestamptz NOT NULL,
PRIMARY KEY (id, order_time),
)

CREATE TABLE T2(
id uuid not null PRIMARY KEY,
t1_id uuid not null,
t1_order_time timestamptz not null,
FOREIGN KEY (t1_id, t1_order_time) REFERENCES T1 (id, order_time) ON DELETE CASCADE
)

我打算根据 id 和订购时间对表 T1 进行分区,因此它在 id 和订购时间上具有复合主键。

如果我尝试删除 T1,postgres 会按预期给出错误“由于约束无法删除表,提示:使用 DROP ... CASCADE 也删除依赖对象。”

现在,如果我执行“drop table T1 cascade”,它会删除 T1 并只删除 T2 的外键约束。不会从 T1 中删除任何相应的行

database
  • 1 个回答
  • 25 Views
Martin Hope
SwAsKk
Asked: 2024-12-20 02:30:57 +0800 CST

如何从 pg_data_dump 部分恢复数据?

  • 7

我有一个问题。我的应用程序中有一个备份功能,下面是我进行转储的方法:

schema_command = (
            f'PGPASSWORD={os.environ["POSTGRES_PASSWORD"]} '
            f'pg_dump -U {os.environ["POSTGRES_USER"]} '
            f'--schema-only -h {os.environ["DB_HOST"]} {os.environ["DB_NAME"]} > {schema_backup_file}'
        )
        subprocess.run(schema_command, shell=True, check=True)

        data_command = (
            f'PGPASSWORD={os.environ["POSTGRES_PASSWORD"]} '
            f'pg_dump -U {os.environ["POSTGRES_USER"]} '
            f'--data-only -h {os.environ["DB_HOST"]} {os.environ["DB_NAME"]} > {data_backup_file}'
        )
        subprocess.run(data_command, shell=True, check=True)

我还有一个恢复功能:

schema_restore_command = (
            f'PGPASSWORD={os.environ["POSTGRES_PASSWORD"]} '
            f'psql -U {os.environ["POSTGRES_USER"]} '
            f'-h {os.environ["DB_HOST"]} -d {os.environ["DB_NAME"]} < {schema_backup_file}'
        )
        print(schema_restore_command)
        subprocess.run(schema_restore_command, shell=True, check=True)

        data_restore_command = (
            f'PGPASSWORD={os.environ["POSTGRES_PASSWORD"]} '
            f'psql -U {os.environ["POSTGRES_USER"]} '
            f'-h {os.environ["DB_HOST"]} -d {os.environ["DB_NAME"]} < {data_backup_file}'
        )
        print(data_restore_command)
        subprocess.run(data_restore_command, shell=True, check=True)

问题是我需要从转储中部分恢复数据。例如 - 我意外删除了一些数据库行,但我的表仍然充满内容。它不起作用。只有当表完全为空时它才有效。

我在创建数据转储时尝试了 --inserts 标志,我尝试在恢复之前清理数据库,它可以工作,但根据我的任务描述,它不应​​该这样工作

database
  • 1 个回答
  • 25 Views
Martin Hope
guts_thakur
Asked: 2024-12-13 00:51:34 +0800 CST

在 Go 中使用 Sqlite 时出现“没有这样的表”错误?

  • 5

在 Go 中使用 sqlite 数据库时。在测试期间我收到错误:no such table: table_name。好吧,我知道错误来自哪里。

但我想知道是否有办法在 Go 中使用此错误消息来处理它(例如在我的代码中创建该表)。我试图做这样的事情:

_, err := getState(dbconn) // This the function that retrieves the table that does not exists
if err != nil {
    if err == err.New("no such table: table_name") {
        // do the work
    }
}
database
  • 1 个回答
  • 36 Views
Martin Hope
Zuhaib Shah
Asked: 2024-12-07 11:08:33 +0800 CST

如何优化 GridDB 集群性能以实现大规模时间序列数据提取?

  • 6

我在基于 Docker 的集群设置中使用 GridDB 来管理大规模时间序列数据。用例涉及每天提取数百万条记录,同时确保实时分析的高效查询性能。

我从 Docker Hub 提取了 GridDB https://hub.docker.com/r/griddb/griddb镜像,并配置了一个包含 3 个节点的集群。但是,我遇到了以下挑战:

  1. 高写入延迟:在高峰摄取期间,写入延迟会显著增加。
  2. 查询性能:具有多种条件(例如时间范围、聚合)的复杂查询比预期的要慢。
  3. 内存使用情况:各个节点的内存使用量不定期出现峰值,有时会导致节点故障。

当前设置:

• 集群配置:• 在 Docker 容器上运行 3 个节点。• 使用 gs_cluster.json 和 gs_node.json 中的默认配置。• 数据模型:• 时间序列数据存储在容器中,行键作为时间戳。• 常用查询参数的索引列。• 提取率:使用 GridDB Java SDK 约为每秒 50,000 条记录。

迄今采取的措施:

  1. 调整gs_node.json中的storeMemoryLimit和notificationInterval来管理内存和写入性能。
  2. 跨多个容器分区数据以减少写入期间的争用。
  3. 尝试了不同批次大小的摄取以找到最佳配置。

问题:

  1. 写入优化:改进 GridDB 中时间序列数据提取的最佳实践是什么?我是否应该调整 dataAffinity 或 checkpointInterval 等特定参数以获得更好的性能?

  2. 内存管理:如何优化整个集群的内存使用情况以避免峰值和潜在的节点故障?

  3. 查询性能:是否存在高级索引或分区技术可以提高时间范围和聚合查询的查询性能?

  4. 监控和调试:是否有任何推荐的工具或技术来监控 GridDB 集群性能并有效识别瓶颈?

参考:

• GridDB 文档:https://docs.griddb.net/

如能得到关于解决这些问题的任何建议或指导,我们将不胜感激。

database
  • 1 个回答
  • 12 Views
Martin Hope
msa4004
Asked: 2024-11-27 19:04:13 +0800 CST

测试 DB2 存储过程时出现一些错误

  • 5

我是存储过程的新手,正在尝试创建一个简单的存储过程来从表中读取数据。我正在使用 IBM DB2 SQL。

--#SET MAXERRORS 0                                  
--#SET TERMINATOR ~                                 
SET CURRENT SQLID = 'SIWRO1'~                       
CREATE OR REPLACE PROCEDURE DWR000A.SELECT_PSID_RIZ(
  IN P_CONN INT                                     
 ,IN P_PLNN INT                                     
)                                                   
LANGUAGE SQL                                        
RESULT SETS 1                                       
READS SQL DATA                                      
BEGIN                                               
  DECLARE C1 CURSOR FOR                             
  SELECT PSID,                                      
         JOBINFO                                    
  FROM DWR000A.TEST                               
  WHERE CONN = P_CONN                               
  AND PLNN = P_PLNN;                                
  OPEN C1;                                          
END         
 ~                 
--#SET TERMINATOR ;
COMMIT;                                                 

执行时出现以下错误。

SQLERROR ON   CREATE    COMMAND, PREPARE   FUNCTION                      
RESULT OF SQL STATEMENT:                                                
DSNT408I SQLCODE = -4743, ERROR:  ATTEMPT TO USE A FUNCTION WHEN THE APPLICATION COMPATIBILITY SETTING IS SET FOR A PREVIOUS LEVEL                                                 
DSNT418I SQLSTATE   = 56038 SQLSTATE RETURN CODE                        
DSNT415I SQLERRP    = DSNHSM5R SQL PROCEDURE DETECTING ERROR            
DSNT416I SQLERRD    = 50  0  0  -1  1  2721 SQL DIAGNOSTIC INFORMATION  
DSNT416I SQLERRD    = X'00000032'  X'00000000'  X'00000000'  X'FFFFFFFF'
         INFORMATION                                                    

我不知道我做错了什么,也不知道该如何解决。我很感激一些专家的建议。谢谢

更新 11/28/2024 我设法通过执行 1 个函数(即创建)来绕过错误。谢谢

database
  • 1 个回答
  • 28 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve