MySqlException: невозможно добавить или обновить дочернюю строку: ограничение Foreign_key не выполненоC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 MySqlException: невозможно добавить или обновить дочернюю строку: ограничение Foreign_key не выполнено

Сообщение Anonymous »

У меня возникает ошибка: «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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»