达梦数据库insert出现“记录超长”

将mysql迁移到达梦时,出现创建表失败,一般都是转换的时候字段长度不一致,导致创建表失败。所以手动拷贝mysql到达梦执行的时候报这个错

达梦默认初始化数据库的时候页大小是不超过8000个字符,也就是一行不超过这个数据,因为我这个表有几个varchar(2000)所以就超过了。

解决方法

create table t2(id int)storage(using long row);建表属性增加storage(using long row);

### 达梦数据库中执行INSERT操作 #### INSERT语句的基本用法 在达梦数据库中,`INSERT`语句用于向表中插入新记录。基本语法如下: ```sql INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...); ``` 此命令会将指定的值插入到对应的列中[^1]。 #### 插入单行数据 当需要插入一条新的记录时,可以按照上述格式编写SQL语句。例如,假设有一个名为`employees`的员工信息表,结构包含字段id、name和age,则可以通过下面的方式添加一名叫张三的新员工的信息: ```sql INSERT INTO employees (id, name, age) VALUES (1001, '张三', 28); ``` 这条指令将会把ID为1001,姓名为“张三”,年龄为28岁的记录加入到`employees`表格里。 #### 插入多行数据 如果要一次性插入多条记录,可以在同一个`INSERT`语句内通过逗号分隔每组值来实现这一点。比如现在想要批量录入两位同事李四(29岁)以及王五(35岁),那么就可以这样写: ```sql INSERT INTO employees (id, name, age) VALUES (1002, '李四', 29), (1003, '王五', 35); ``` 这将在一次操作中完成两条记录的同时创建。 #### 插入部分列的数据 有时候并非所有的列都需要提供具体的输入值,在这种情况下只需列出那些确实有赋值需求的列名即可。对于未提及的其他可为空白或具有默认设定值得属性,默认情况下的处理方式取决于定义这些列时候所设置的相关约束条件。举个例子来说,如果我们只关心给定员工的名字而不涉及其具体职位的话,就只需要指明名字这一项: ```sql INSERT INTO employees (name) VALUES ('赵六'); ``` 这里仅提供了名称作为参数传递进去,而像ID这样的自增型主键则由系统自动分配;至于其他的非必填项目(如部门编号),如果没有特别说明就会保持空白状态或是采用事先规定的缺省配置。 #### 高级插入技巧 ##### 从另一个表中选择数据插入 除了手动指定每一项的具体数值外,还可以利用现有的另一张表里的现有资料来进行填充工作。这种方式非常适合于跨库迁移或者是基于已有业务逻辑复制相似模式下产生的实体对象。下面是有关如何从源表选取特定条件下满足要求的部分并将其迁移到目标位置的一个实例展示: ```sql INSERT INTO target_table (colA, colB, colC) SELECT source_colA, source_colB, source_colC FROM source_table WHERE condition; ``` 这里的`target_table`是要接收新增加成员的目标集合体,而`source_table`则是用来供给原材料的地方。`condition`代表筛选标准,只有符合该准则的内容才会被采纳进入最终的目的地中去。 ##### 使用默认值插入数据 某些场合下可能希望让某几个字段沿用它们各自预设好的初始形态而非人为干预改变。此时便可通过省略掉这部分待填写的位置从而触发相应的机制使得程序能够识别出应当调用内置规则来自动生成相应结果。考虑这样一个场景:有一份订单详情列表其中包含了商品编码、数量还有单价三个要素构成的一系列交易行为描述文件夹,但是每当遇到促销活动期间所有售出的产品都会享有统一折扣优惠措施,因此针对这种情况可以直接忽略价格栏位使之依据既定算法计算得出确切金额数目: ```sql INSERT INTO order_details (product_code, quantity) VALUES ('PROD_007', 5); -- 单价将使用默认值 ``` 在这个样例里面并没有给出任何关于售价方面的指示,所以它会被认为应该遵循先前已经确立下来的价格体系进行结算过程。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值