У меня возникает ошибка: «MySqlException: невозможно добавить или обновить дочернюю строку: сбой ограничения Foreign_key» в моем проекте C# при выполнении этого кода:
INSERT INTO networks (owner_name, name, password, ip, visible)
VALUES ('alex', 'alex_net', '1234', '192.168.1.1', 1)
ON DUPLICATE KEY
UPDATE name='alex_net', password = '1234', ip = '192.168.1.1', visible = 1;
Но когда я запускаю его в PhPMyAdmin, он работает отлично.
Почему он не работает в приложении, но работает в PhPMyAdmin?РЕДАКТИРОВАТЬ:
Я использую функцию MySqlConnector/Mono
C#, которая выполняет запрос:
public static bool InsertOrUpdateNetwork(MySqlConnection connection, NetworkSO networkData)
{
string sql =
$"INSERT INTO networks (owner_name, name, password, ip, visible) " +
$"VALUES ('{networkData.ownerName}', '{networkData.name}', '{networkData.password}', '{networkData.ip}', {networkData.visible}) " +
$"ON DUPLICATE KEY " +
$"UPDATE name='{networkData.name}', password='{networkData.password}', ip='{networkData.ip}', visible={networkData.visible}";
MySqlCommand cmd = new MySqlCommand(sql, connection);
int result = cmd.ExecuteNonQuery();
return result > 0;
}
ПОКАЗАТЬ СОЗДАНИЕ сетей и пользователей:
CREATE TABLE networks (
owner_name varchar(16) NOT NULL,
name varchar(16) DEFAULT NULL,
password varchar(16) DEFAULT NULL,
ip varchar(15) NOT NULL,
visible tinyint(4) NOT NULL,
PRIMARY KEY (owner_name),
UNIQUE KEY owner_name_UNIQUE (owner_name),
CONSTRAINT fk_network_owner_name FOREIGN KEY (owner_name) REFERENCES users (name) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1
CREATE TABLE users (
name varchar(16) NOT NULL,
password varchar(16) DEFAULT NULL,
logged tinyint(4) DEFAULT NULL,
PRIMARY KEY (name),
UNIQUE KEY name_UNIQUE (name)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Полный журнал консоли:
MySqlException: Cannot add or update a child row: a foreign key constraint fails (sql7721749.networks, CONSTRAINT fk_network_owner_name` FOREIGN KEY (owner_name) REFERENCES users (name) ON DELETE CASCADE ON UPDATE CASCADE)
Подробнее здесь: https://stackoverflow.com/questions/788 ... aint-fails
MySqlException: невозможно добавить или обновить дочернюю строку: ограничение Foreign_key не выполнено ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
«IntegrityError at /paid_getway/ограничение FOREIGN KEY не удалось в Django»
Anonymous » » в форуме Python - 0 Ответы
- 15 Просмотры
-
Последнее сообщение Anonymous
-