我目前正在尝试使用 CodeIgniter 的对象关系映射器,但我遇到了一些我没有预料到的事情。
我有一个包含几个字段的表,其中一些字段不为空。生成缺少 NOT NULL 字段的插入查询 - 添加一个新行,但这些字段为空白。
我不知道 MySQL 会忽略查询中不存在的 NOT NULL 字段并无论如何插入该行。有没有办法限制这个?
-编辑-
让我添加更多细节并尝试对其进行更多解释
这是一个示例表:
CREATE TABLE `test` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`color` varchar(40) COLLATE utf8_bin DEFAULT '',
`shape` varchar(40) COLLATE utf8_bin NOT NULL,
`size` varchar(40) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
Run Code Online (Sandbox Code Playgroud)
这是一个示例查询:
INSERT INTO `test` (`shape`) VALUES ('foo')
Run Code Online (Sandbox Code Playgroud)
我的查询中没有size,但它仍然添加该行 - 这是预期的吗?
(示例查询在 phpMyAdmin 中运行)
我的 SQL INSERT 语句有问题。我试图插入存储在字符串中的数据,但这总是会引发错误。
private final String HASH_DB = "hashDb";
private final String HASH_TABLE2 = "newHashes";
SQLiteDatabase hashDB = null;
hashDB = this.openOrCreateDatabase(HASH_DB, MODE_PRIVATE, null);
hashDB.execSQL("CREATE TABLE IF NOT EXISTS " + HASH_TABLE2
+ " (dialogID INT, Filename VARCHAR, Hash VARCHAR);");
hashDB.execSQL("INSERT INTO " + HASH_TABLE2 +" (dialogID, Filename, Hash) "
+ " Values (dialogID, filename, newHash);");
Run Code Online (Sandbox Code Playgroud)
dialogID 是一个 int,Filename 和 Hash 都是字符串,我已经通过在 Toast 中显示它们来确认正确的数据存储在其中。
上面抛出了一个错误,但是如果我将最后一行更改为下面的内容,即对要插入的数据进行硬编码,它就可以工作。
hashDB.execSQL("INSERT INTO " + HASH_TABLE2 +" (dialogID, Filename, Hash) "
+ " Values (4, …Run Code Online (Sandbox Code Playgroud) 我有下表:
发明人(发明人ID,专利号,发明人第一,发明人最后,城市,州)
其中 inventoryid 为 pk,patentno 为 fk。
这是当前的插入代码:
insert into Inventor (PatentNo, InventorFirst, InventorLast, City, statename, country, NationalityCountry, ResidenceCountry)
select PatentNo, InventorFirstname, InventorLastname, City, statename, country, NationalityCountry, ResidenceCountry
from InventorUpdate;
Run Code Online (Sandbox Code Playgroud)
我想修改它,以便如果 InventorFirstname 和 InventorLastname 字段为空,则它不会插入到inventor表中
我有一个简单的程序,可以插入或附加一些空格来对齐文本。
f()
{
string word = “This word”;
const string space = “ “;
int space_num = 5; // this number can vary
for (int i = 0; i < space_num; i++)
{
word.insert(0, space);
}
cout << word;
}
Run Code Online (Sandbox Code Playgroud)
现在这有效,但我想知道是否有更有效的方法来做到这一点。不是在优化我的程序方面,而是在标准实践中。
我可以想象两种潜在的方法:
1 - 有没有办法创建一个 20 个空格的字符串,并附加这些空格的一部分,而不是重复添加一个空格。
2 – 有没有办法用可变数量的空格创建字符串并附加它?
我正在尝试从 MySQL 中的数据库读取并将我的数据插入到 MySQL 中的另一个数据库中。
我的第一张桌子是这样的
CREATE TABLE IF NOT EXISTS `link` (
`_id` bigint(20) NOT NULL AUTO_INCREMENT,
`country` varchar(30) COLLATE utf8 DEFAULT NULL,
`time` varchar(20) COLLATE utf8 DEFAULT NULL,
`link` varchar(100) COLLATE utf8 DEFAULT NULL,
PRIMARY KEY (`_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=6149 ;
Run Code Online (Sandbox Code Playgroud)
第二张表是
CREATE TABLE IF NOT EXISTS `country` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`Name` varchar(15) CHARACTER SET utf8 NOT NULL,
`Logo` varchar(50) CHARACTER SET utf8 DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `Name_3` (`Name`),
UNIQUE …Run Code Online (Sandbox Code Playgroud) 我想使用以下命令将来自一个表的一些记录插入到另一个表中INSERT ... IGNORE:
INSERT IGNORE into separa (no_cliente,contratante) values (select cl_num,cl_aseg from clientes)
Run Code Online (Sandbox Code Playgroud)
但是 MySQL 告诉我错了,有什么帮助吗?
我的小型 SQL 查询只是将数据从旧数据库导入到新数据库。我的新数据库不允许ProjectNo,ProjectName或者LeaderID是一个NULL值,所以我的代码需要检查该值是否是NULL,如果是,添加ProjectName和LeaderID(ProjectNo是旧表的主键,所以不能是NULL)的默认值。
据我所知,我已经正确地编写了 case 语句,但我不断收到以下错误:
无法将值 NULL 插入列“ProjectName”、表“ERP.dbo.Project”;列不允许空值。插入失败。
我也在使用 SQL Server 2008
INSERT INTO [ERP].[dbo].[Project] ([ProjectID], [ProjectName], [LeaderID])
SELECT
ProjectNo,
CASE
WHEN ProjectName IS NULL THEN 'Unknown'
END,
CASE
WHEN ProjectLeaderID IS NULL THEN 1
END
FROM
Multitech.dbo.Projects
GO
Run Code Online (Sandbox Code Playgroud) 最近我安装了 Visual Studio 2017 Enterprise,当我打开任何文件(如 .cs、.cshtml)时,每次光标变为灰色矩形时,编辑器就好像处于 Over-strike 模式,即使底部的指示器窗口上写着“INS”。
所以我点击了几次插入按钮,然后在“OVR”和“INS”之间循环,光标又回到“|” 我开始编码。然后,当我突出显示某些文本时,它会再次发生。这是非常令人沮丧和痛苦的。
双击指示器具有与插入按钮相同的临时结果。
那么我怎样才能永久解决我的问题呢?
c# insert visual-studio mouse-cursor vim-syntax-highlighting
你好!
我正在尝试构建一个代码,该代码循环遍历范围 C8:C3276 中的每个单元格,如果单元格值为“总计”,则在下方插入一个新行。
这是我到目前为止的代码:
Sub Create_new_rows()
Dim rng As Range
Dim cell As Range
Set rng = Range("C8:C3276")
For Each cell In rng
If ActiveCell.Value = "Total" Then
ActiveCell.Offset(1, 0).Activate
ActiveCell.EntireRow.Insert
End If
Next cell
End Sub
Run Code Online (Sandbox Code Playgroud)
当我执行代码时没有任何反应。我假设在宏运行时代码构建不正确(我没有收到错误消息),但没有做任何事情。
任何帮助是极大的赞赏!:)
我必须在table现有client_id列中插入一些数据,所以我使用 select 和 insert
INSERT into 'my_table' (column1, client_id, column3) VALUES (val1,select distinct client_id from 'my_table', val3)
我需要来自同一个表的my_tableclient_id 并且我需要在插入语句中使用 client_ids。
SELECT DISTINCT client_id FROM my_table 给了我 113 个 client_id,所以我想使用上述方法为每个 113 个客户端插入一些行。
我做了这个查询
INSERT INTO client_notification_preferences (client_id, object_type , frequency,created_at,updated_at) SELECT DISTINCT client_id, 'ClientShipment',1, CURRENT_TIMESTAMP , CURRENT_TIMESTAMP FROM client_notification_preferences;
create_table "client_notification_preferences", id: :uuid, default: "uuid_generate_v4()", force: :cascade do |t|
t.uuid "client_id"
t.string "object_type"
t.integer "frequency"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
Run Code Online (Sandbox Code Playgroud)
结尾
insert ×10
sql ×4
mysql ×3
sql-server ×2
android ×1
append ×1
c# ×1
c++ ×1
case ×1
codeigniter ×1
excel ×1
loops ×1
mouse-cursor ×1
nested-query ×1
null ×1
php ×1
postgresql ×1
row ×1
select ×1
sql-insert ×1
string ×1
vba ×1