我在文本文件中有一些批量数据需要导入到MySQL表中.该表由两个字段组成..
文本文件是一个大的名称集合,每行有一个名称...
(例)
John Doe
Alex Smith
Bob Denver
Run Code Online (Sandbox Code Playgroud)
我知道如何通过phpMyAdmin导入文本文件,但据我所知,我需要导入与目标表具有相同字段数的数据.有没有办法将我的文本文件中的数据导入一个字段并让ID字段自动自动增加?
预先感谢您的任何帮助.
以前我问过如何在不使用SQL的情况下在Magento安装脚本中使用ALTER TABLE.在那里,伊万给出了一个很好的答案,我现在仍然提到这个答案.
但是,我还没有发现如何使用Varien_Db_Ddl_Table::addColumn()来指定auto_increment列.我认为这与被调用的选项有关,identity但到目前为止没有运气.
这甚至可能还是功能不完整?
我正在测试insert-select查询并注意到一个奇怪的结果.
CREATE TABLE `test` (
`cnt` int(11) NOT NULL AUTO_INCREMENT,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`cnt`)
)
CREATE TABLE `test_current` (
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL
)
Run Code Online (Sandbox Code Playgroud)
首先,我创建了两个表,并在test_current中插入一些值
mysql> insert into test_current (a,b) values (1,1),(2,2);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
Run Code Online (Sandbox Code Playgroud)
我做了这个查询
mysql> INSERT INTO test (a,b) SELECT a,b FROM test_current;
Query OK, 2 rows affected, 1 warning (0.00 sec)
Records: 2 Duplicates: 0 Warnings: …Run Code Online (Sandbox Code Playgroud) 我最近开始了一项新工作,并注意到所有SQL表都使用GUID数据类型作为主键.
在我以前的工作中,我们使用整数(自动增量)作为主键,在我看来,它更容易使用.
例如,假设你有两个相关的表; Product和ProductType - 我可以轻松地交叉检查特定行的两个表的'ProductTypeID'列,以快速映射我脑中的数据,因为它易于存储数字(2,4,45等),而不是(E75B92A3- 3299-4407-A913-C5CA196B3CAB).
额外的挫折感来自于我想了解表格是如何相关的,遗憾的是没有数据库图表:(
很多人说GUID是更好的,因为您可以在C#代码中定义唯一标识符,例如使用NewID()而不需要SQL SERVER来执行此操作 - 这也允许您临时知道ID将是什么....但我已经看到有可能仍然检索'下一个自动递增的整数'.
DBA承包商报告说,如果我们使用Integer类型而不是GUIDS,我们的查询可以快30%...
为什么GUID数据类型存在,它真正提供了哪些优势?...即使是某些专业人士的选择,必须有一些很好的理由来解释为什么它的实现?
我有一个mysql数据库,其中我使用auto_increment(整数),你能告诉我,直到它可以递增的整数.我们如何才能增加auto_increment的限制?
我正在使用Flask扩展来为SQLAlchemy定义我的数据库模型.我希望id列是int类型并具有auto_increment属性但不使其成为主键.我该如何实现?
我试过这个:
from flask import Flask, jsonify
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:ajay@localhost/pydb'
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app)
class Scenario(db.Model):
scid = db.Column(db.Integer, nullable=False, unique=True, autoincrement=True)
scenario_name = db.Column(db.String(100), primary_key=True)
scenario_description = db.Column(db.String(200), nullable=False)
image_id = db.Column(db.Integer, db.ForeignKey('images.id', onupdate='CASCADE', ondelete='CASCADE'))
def __init__(self, scenario_name, scenario_description, image_id=None):
self.scenario_name = scenario_name
self.scenario_description = scenario_description
self.image_id = image_id
def __repr__(self):
return '<Scenario %r, %r, %r>' % (self.scenario_name, self.scenario_description, self.image_id)
Run Code Online (Sandbox Code Playgroud)
但是这不会将scid列设置为auto_increment.
有没有办法将现有的主键类型从int更改为serial而不删除表?我已经在表中有很多数据,我不想删除它.
我正在尝试在我的数据库中创建一个具有自动增量ID的表,但每当我尝试将AUTOINCREMENT关键字添加到我的查询时,它告诉我:
AUTOINCREMENT仅允许在INTEGER PRIMARY KEY上使用
这是我的查询:
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_TASKS + " ( "
+ KEY_ID + "INTEGER PRIMARY KEY AUTOINCREMENT, "
+ KEY_NOTETITLE + " TEXT, " + KEY_NOTECONTENT + " Text, "
+ KEY_STATUS + " INTEGER)";
db.execSQL(sql);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试写AUTO_INCREMENT,但后来我遇到了语法错误.
我发现这是问题的根源,因为每当我尝试删除AUTOINCREMENT字时,它都能正常工作.
那么......你认为这是什么问题?
我首先在我的UWP和.NET Standard应用程序中使用Entity Framework Core 2.0 for Sqlite代码.我的模型有一个主键整数类型的实体,根据SQLite文档应该作为自动增量.但实际上,Identity列的每一行都将0作为值.请帮助,因为我找不到与此问题相关的帮助材料.
这是我的财产,没有任何数据注释.
public Int32 No { get; set; }
我使用了流畅的API
modelBuilder.Entity<TurnosGeneral>()
.HasKey(c => new { c.No, c.Cod_Turno });
Run Code Online (Sandbox Code Playgroud)
并在此处插入值
db.TurnosGenerals.Add(new TurnosGeneral { Cod_Turno = numeroTurnoTextBlock.Text });
Run Code Online (Sandbox Code Playgroud)
db.SaveChanges();
插入的每一行c.No为0.
c# sqlite auto-increment entity-framework-core .net-standard-2.0
我们正在将应用程序从 spring-boot 2.4.3 升级到 2.7.0。Hibernate核心版本是5.6.9.Final。2.7.0是第一个使用H2数据库2.1.212的版本,我们正在使用它进行测试。我根据他们的迁移到 2.0 的指南做了一些更改,但我遇到了一个尚未找到解决方案的问题。
在一些集成测试中,我们在该类中运行测试之前使用 SQL 脚本插入数据。例如,脚本在表中插入 3 个项目,然后测试插入第 4 个项目并更新已存在的最初 3 个项目之一。
执行插入的测试失败并出现以下错误
DataIntegrityViolationException. Error message: could not execute statement; SQL [n/a]; constraint ["PRIMARY KEY ON studio.exercise(id) ( /* key:1 */ 1, 'Test Exercise', FALSE, 'TEST', NULL, 1, 'TEST', TIMESTAMP '2021-01-01 16:00:13', NULL, NULL)";
SQL statement: insert into exercise (id, created_by, created_on, modified_by, modified_on, archived, image, organization_id, title, type) values (default, ?, ?, ?, ?, ?, ?, ?, ?, ?) [23505-212]]; nested exception is org.hibernate.exception.ConstraintViolationException: could …Run Code Online (Sandbox Code Playgroud) auto-increment ×10
mysql ×3
sqlite ×2
android ×1
c# ×1
flask ×1
guid ×1
h2 ×1
hibernate ×1
import ×1
installation ×1
integer ×1
magento ×1
phpmyadmin ×1
postgresql ×1
primary-key ×1
python ×1