Состояние sql 23000 код ошибки 177

Общие советы :

1) все данные (и виды платежей) — в одной плоской таблице (без каких-либо объединений ячеек) на одном(!) листе. Разделы «по счету», «по счетчику(по факту)» и «контроль» — это просто дополнительные столбцы справа.

2) вверху оставьте 10 строк для формул «итого», они всегда видны, т.к. область с формулами» закреплена»  

3) Долг и переплата — это всегда одна строка,  переплату можно ставить красным (формат ячейки — Отрицательное красным)

4) Из-за перерасчетов задним числом и смены тарифов — «помесячные итоги» не так полезны для анализа, как «нарастающий с начала года» или вообще «с начала времен». Я бы внес все квитки с начала года, добавил к январскому сумму долга/переплаты.  

5) Т.к. квитанция состоит всегда из 5 строк (Эл.Д, Эл.Н, ХВС, Вывоз ТКО, Утилизация ТКО) — то сразу их скопировать на 2 года вперед. Т.к. тариф меняется условного говоря «раз в полгода» и долго действует — сослаться формулами апреля — на март итд. И когда тариф эл. энергии станет не 2,83 а 4 — просто в том месяце перебиваем формулу на значение 4.

6) Нужно освоить функцию =СУММЕСЛИ(). Формула, которая суммирует все Дн. киловатты (по счету, счетчику и разницу) с начала года будет выглядеть так: =СУММЕСЛИ(Вид;’ЭлДень’;ПоСчету)
=СУММЕСЛИ(Вид;’ЭлДень’;ПоСчетчику)
=СУММЕСЛИ(Вид;’ЭлДень’;Отклон)
Чтобы можно было так легко писать и понимать формулы — нужно дать имена столбцам (точнее их диапазонам с 11-й по, скажем, по 71-строку, вперед на 5 лет). Для этой цели часто делают «официальную» шапку таблицы и ниже, через 1 пустую строку — дублируют её же краткой одной строкой «полей», в ней все слова без пробелов «Электроэнергия День кВт.ч» -> «ЭлДень». Понятности это не уменьшит, а вот скорость написания формулы вырастет пятикратно. Имена диапазонов можно тогда не создавать — Calc сам поймет где находится столбец «ЭлДень», с какой ячейки начинается и где заканчивается.

7) Самым левым столбцом делают «Период», вводят дату, скажем 31.01.18, 28.02.18. а в формате ячейки — Январь 18, Февраль 18 итд. После включения автофильтра на строке «полей», отделенной от «шапки» пустой строкой — появятся значки Автофильтра и возможность легко отбирать нужный период или нужный вид платежа в Автофильтре.

8) Чтобы автосуммировать видимое (прошедшее фильтр) — нужно освоить функцию =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СЧЕТ)

Полученная плоская таблица обладает громадным плюсом, она все-в-одном, логически целостна. Если захочется сделать по ней отчет — изучаем Сводные таблицы и диаграммы и делаем их на 2-м листе. Но даже просто =ПРОМЕЖУТОЧНЫЕ.ИТОГИ() даст вам информацию о среднем, максимальном, минимальном значении чего угодно за любой период, который выбирается Автофильтром.

Я плачу раз в полгода (ненавижу этот процесс и очереди, т.к. УК до сих пор работает только через ГРЦ-кассы, безнал никак, руководы УК по доброй российской традиции в федеральном розыске), — то оплату я ввожу одной строкой «между» квитанций (заплатил 10/03 — 45 тыс. руб.) Формула у меняя сама делит сумму одного платежа (45 тыс. руб.) на 108 отдельных чисел (по видам платежей). Это достигается суммированием накопленного долга с остатками долга и пени, пропорциональным делением. УК делает все точно так же, и когда с ними спорю — нахожу понимание. Разбивать 45 тр. на 6 квитанций х 6 видов платежей х 3 вида (недоимка/пеня/перерасчет) = 108 цифр — считаю пустой тратой времени. Учетные программы в УК и ТСЖ делают точно так же.

Данная ошибка говорит сама за себя, но это не значит, что всё может быть просто. Мне потребовалось час, чтобы выяснить реальную причину.

Для многих причина может очевидна, но я каждый день новые сервера не подключаю.

Основная причина

Неверное имя пользователя или пароля для базы данных на MSSQL

Решение

Альтернативная причина

У вас отключена авторизация на уровне SQL сервера при установке или после, об этом он пишет в логе, но не в тексте ошибки. В свойствах сервера необходимо включить режим «SQL Server and Windows Autentification mode»

Включите: тогда после перезапуска сервера или службы MSSQLSERVER всё должно быть отлично.

Реклама магазина самообслуживания: треска, стоящая в очереди за cобственной печенью.

— Владимир Колечицкий

Источники:

https://capitally. ru/1c-development/administrirovanie/oshibka-28000-80040e4d-login-failed-for-user-sa-chto-delat/

In the video you cite, this is kind of silly as there is no need for a many to many relationship. The author could have simply added a Movie ID field to the genre Table, (so multiple genre records can point to each movie record).

I have a complex many-to-many contacts structure that I’m in the process of porting from MS Access to LibreOffice. It has 4 primary data tables: Groups, Address, Phones, and People. And there are 6 link tables to connect those primary tables: GroupAddress, GroupPhone, GroupPerson; AddressPhone, AddressPerson; and finaly PhonePerson. Unlike the video you cite above with only 2 fields, in my link tables there are 3 fields. GroupAddress for example has GroupAddressID (the unique id for the link table itself), GroupID (which points to the Groups table), and AddressID (which points to the addresses table). This allows any number of addresses per each group, and at the same time, any number of groups per each address.

So the whole thing has maximum data flexibility: For example it allows for unlimited number of people per group, each person can have an unlimited number of phones or addresses, each address an unlimited number of people, etc.

Implementing it in LO: Because in LO you can’t edit a query based on more than one table (you can view it, but not edit it), like you can in Access, (and therefore you also can’t build a form with a table that can edit a query based on more than one table), in LO this is not as clean as it is in Access.

In Access it works very well and the link tables manage themselves! In LO you have to manually edit the link tables in a separate table. I’m starting to think about how I might use some macros to improve on this, but for the moment it’s bare bones.

To give you a better idea, the first form to edit Groups, which also edits the group’s addresses, people, and phones (not just those tables, but also the links to those tables) looks like this:


Group lookup pulldown (used to find a group record)  
(this is a drop down box with custom code that helps me find group records)

Group editing fields, e.g. Group name, category, url, etc

Then below that

Group-Person links table

Then to the right of that

Persons table (plural) - to create new person, then..  

And below that

Person table (singular)   
 [pointed to by Group-Person link]  
 to view person pointed to.

Group-Address links || (similar structure to above)
(for example, when a business has two or more addresses)


Group-Phone links || (similar structure to above)
(this is for phone#’s that the group owns directly, not personal phones of the group’s members, and not phones tied to specific addresses).

———-

Then there are 3 other similar forms,

one for Addresses w/ Person, Group & Phone links;

one for Phones w/ Group, Address & Person links;

and one for People w/ Group, Address and phone links;

Here is a screen shot of the first of the 4 editing forms, to edit the groups and the links associated with the group:

enter image description here

Hope this helps. I would be interested to see what you develop. Thanks.

Общие советы :

1) все данные (и виды платежей) — в одной плоской таблице (без каких-либо объединений ячеек) на одном(!) листе. Разделы «по счету», «по счетчику(по факту)» и «контроль» — это просто дополнительные столбцы справа.

2) вверху оставьте 10 строк для формул «итого», они всегда видны, т.к. область с формулами» закреплена»  

3) Долг и переплата — это всегда одна строка,  переплату можно ставить красным (формат ячейки — Отрицательное красным)

4) Из-за перерасчетов задним числом и смены тарифов — «помесячные итоги» не так полезны для анализа, как «нарастающий с начала года» или вообще «с начала времен». Я бы внес все квитки с начала года, добавил к январскому сумму долга/переплаты.  

5) Т.к. квитанция состоит всегда из 5 строк (Эл.Д, Эл.Н, ХВС, Вывоз ТКО, Утилизация ТКО) — то сразу их скопировать на 2 года вперед. Т.к. тариф меняется условного говоря «раз в полгода» и долго действует — сослаться формулами апреля — на март итд. И когда тариф эл. энергии станет не 2,83 а 4 — просто в том месяце перебиваем формулу на значение 4.

6) Нужно освоить функцию =СУММЕСЛИ(). Формула, которая суммирует все Дн. киловатты (по счету, счетчику и разницу) с начала года будет выглядеть так: =СУММЕСЛИ(Вид;’ЭлДень’;ПоСчету)
=СУММЕСЛИ(Вид;’ЭлДень’;ПоСчетчику)
=СУММЕСЛИ(Вид;’ЭлДень’;Отклон)
Чтобы можно было так легко писать и понимать формулы — нужно дать имена столбцам (точнее их диапазонам с 11-й по, скажем, по 71-строку, вперед на 5 лет). Для этой цели часто делают «официальную» шапку таблицы и ниже, через 1 пустую строку — дублируют её же краткой одной строкой «полей», в ней все слова без пробелов «Электроэнергия День кВт.ч» -> «ЭлДень». Понятности это не уменьшит, а вот скорость написания формулы вырастет пятикратно. Имена диапазонов можно тогда не создавать — Calc сам поймет где находится столбец «ЭлДень», с какой ячейки начинается и где заканчивается.

7) Самым левым столбцом делают «Период», вводят дату, скажем 31.01.18, 28.02.18. а в формате ячейки — Январь 18, Февраль 18 итд. После включения автофильтра на строке «полей», отделенной от «шапки» пустой строкой — появятся значки Автофильтра и возможность легко отбирать нужный период или нужный вид платежа в Автофильтре.

8) Чтобы автосуммировать видимое (прошедшее фильтр) — нужно освоить функцию =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СЧЕТ)

Полученная плоская таблица обладает громадным плюсом, она все-в-одном, логически целостна. Если захочется сделать по ней отчет — изучаем Сводные таблицы и диаграммы и делаем их на 2-м листе. Но даже просто =ПРОМЕЖУТОЧНЫЕ.ИТОГИ() даст вам информацию о среднем, максимальном, минимальном значении чего угодно за любой период, который выбирается Автофильтром.

Я плачу раз в полгода (ненавижу этот процесс и очереди, т.к. УК до сих пор работает только через ГРЦ-кассы, безнал никак, руководы УК по доброй российской традиции в федеральном розыске), — то оплату я ввожу одной строкой «между» квитанций (заплатил 10/03 — 45 тыс. руб.) Формула у меняя сама делит сумму одного платежа (45 тыс. руб.) на 108 отдельных чисел (по видам платежей). Это достигается суммированием накопленного долга с остатками долга и пени, пропорциональным делением. УК делает все точно так же, и когда с ними спорю — нахожу понимание. Разбивать 45 тр. на 6 квитанций х 6 видов платежей х 3 вида (недоимка/пеня/перерасчет) = 108 цифр — считаю пустой тратой времени. Учетные программы в УК и ТСЖ делают точно так же.

Общие советы :

1) все данные (и виды платежей) — в одной плоской таблице (без каких-либо объединений ячеек) на одном(!) листе. Разделы «по счету», «по счетчику(по факту)» и «контроль» — это просто дополнительные столбцы справа.

2) вверху оставьте 10 строк для формул «итого», они всегда видны, т.к. область с формулами» закреплена»  

3) Долг и переплата — это всегда одна строка,  переплату можно ставить красным (формат ячейки — Отрицательное красным)

4) Из-за перерасчетов задним числом и смены тарифов — «помесячные итоги» не так полезны для анализа, как «нарастающий с начала года» или вообще «с начала времен». Я бы внес все квитки с начала года, добавил к январскому сумму долга/переплаты.  

5) Т.к. квитанция состоит всегда из 5 строк (Эл.Д, Эл.Н, ХВС, Вывоз ТКО, Утилизация ТКО) — то сразу их скопировать на 2 года вперед. Т.к. тариф меняется условного говоря «раз в полгода» и долго действует — сослаться формулами апреля — на март итд. И когда тариф эл. энергии станет не 2,83 а 4 — просто в том месяце перебиваем формулу на значение 4.

6) Нужно освоить функцию =СУММЕСЛИ(). Формула, которая суммирует все Дн. киловатты (по счету, счетчику и разницу) с начала года будет выглядеть так: =СУММЕСЛИ(Вид;’ЭлДень’;ПоСчету)
=СУММЕСЛИ(Вид;’ЭлДень’;ПоСчетчику)
=СУММЕСЛИ(Вид;’ЭлДень’;Отклон)
Чтобы можно было так легко писать и понимать формулы — нужно дать имена столбцам (точнее их диапазонам с 11-й по, скажем, по 71-строку, вперед на 5 лет). Для этой цели часто делают «официальную» шапку таблицы и ниже, через 1 пустую строку — дублируют её же краткой одной строкой «полей», в ней все слова без пробелов «Электроэнергия День кВт.ч» -> «ЭлДень». Понятности это не уменьшит, а вот скорость написания формулы вырастет пятикратно. Имена диапазонов можно тогда не создавать — Calc сам поймет где находится столбец «ЭлДень», с какой ячейки начинается и где заканчивается.

7) Самым левым столбцом делают «Период», вводят дату, скажем 31.01.18, 28.02.18. а в формате ячейки — Январь 18, Февраль 18 итд. После включения автофильтра на строке «полей», отделенной от «шапки» пустой строкой — появятся значки Автофильтра и возможность легко отбирать нужный период или нужный вид платежа в Автофильтре.

Чтобы автосуммировать видимое (прошедшее фильтр) — нужно освоить функцию =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СЧЕТ)

Полученная плоская таблица обладает громадным плюсом, она все-в-одном, логически целостна. Если захочется сделать по ней отчет — изучаем Сводные таблицы и диаграммы и делаем их на 2-м листе. Но даже просто =ПРОМЕЖУТОЧНЫЕ.ИТОГИ() даст вам информацию о среднем, максимальном, минимальном значении чего угодно за любой период, который выбирается Автофильтром.

Я плачу раз в полгода (ненавижу этот процесс и очереди, т.к. УК до сих пор работает только через ГРЦ-кассы, безнал никак, руководы УК по доброй российской традиции в федеральном розыске), — то оплату я ввожу одной строкой «между» квитанций (заплатил 10/03 — 45 тыс. руб.) Формула у меняя сама делит сумму одного платежа (45 тыс. руб.) на 108 отдельных чисел (по видам платежей). Это достигается суммированием накопленного долга с остатками долга и пени, пропорциональным делением. УК делает все точно так же, и когда с ними спорю — нахожу понимание. Разбивать 45 тр. на 6 квитанций х 6 видов платежей х 3 вида (недоимка/пеня/перерасчет) = 108 цифр — считаю пустой тратой времени. Учетные программы в УК и ТСЖ делают точно так же.

In the video you cite, this is kind of silly as there is no need for a many to many relationship. The author could have simply added a Movie ID field to the genre Table, (so multiple genre records can point to each movie record).

I have a complex many-to-many contacts structure that I’m in the process of porting from MS Access to LibreOffice. It has 4 primary data tables: Groups, Address, Phones, and People. And there are 6 link tables to connect those primary tables: GroupAddress, GroupPhone, GroupPerson; AddressPhone, AddressPerson; and finaly PhonePerson. Unlike the video you cite above with only 2 fields, in my link tables there are 3 fields. GroupAddress for example has GroupAddressID (the unique id for the link table itself), GroupID (which points to the Groups table), and AddressID (which points to the addresses table). This allows any number of addresses per each group, and at the same time, any number of groups per each address.

So the whole thing has maximum data flexibility: For example it allows for unlimited number of people per group, each person can have an unlimited number of phones or addresses, each address an unlimited number of people, etc.

Implementing it in LO: Because in LO you can’t edit a query based on more than one table (you can view it, but not edit it), like you can in Access, (and therefore you also can’t build a form with a table that can edit a query based on more than one table), in LO this is not as clean as it is in Access.

In Access it works very well and the link tables manage themselves! In LO you have to manually edit the link tables in a separate table. I’m starting to think about how I might use some macros to improve on this, but for the moment it’s bare bones.

To give you a better idea, the first form to edit Groups, which also edits the group’s addresses, people, and phones (not just those tables, but also the links to those tables) looks like this:


Group lookup pulldown (used to find a group record)  
(this is a drop down box with custom code that helps me find group records)

Group editing fields, e.g. Group name, category, url, etc

Then below that

Group-Person links table

Then to the right of that

Persons table (plural) - to create new person, then..  

And below that

Person table (singular)   
 [pointed to by Group-Person link]  
 to view person pointed to.

Group-Address links || (similar structure to above)
(for example, when a business has two or more addresses)


Group-Phone links || (similar structure to above)
(this is for phone#’s that the group owns directly, not personal phones of the group’s members, and not phones tied to specific addresses).

———-

Then there are 3 other similar forms,

one for Addresses w/ Person, Group & Phone links;

one for Phones w/ Group, Address & Person links;

and one for People w/ Group, Address and phone links;

Here is a screen shot of the first of the 4 editing forms, to edit the groups and the links associated with the group:

enter image description here

Hope this helps. I would be interested to see what you develop. Thanks.

In the video you cite, this is kind of silly as there is no need for a many to many relationship. The author could have simply added a Movie ID field to the genre Table, (so multiple genre records can point to each movie record).

I have a complex many-to-many contacts structure that I’m in the process of porting from MS Access to LibreOffice. It has 4 primary data tables: Groups, Address, Phones, and People. And there are 6 link tables to connect those primary tables: GroupAddress, GroupPhone, GroupPerson; AddressPhone, AddressPerson; and finaly PhonePerson. Unlike the video you cite above with only 2 fields, in my link tables there are 3 fields. GroupAddress for example has GroupAddressID (the unique id for the link table itself), GroupID (which points to the Groups table), and AddressID (which points to the addresses table). This allows any number of addresses per each group, and at the same time, any number of groups per each address.

So the whole thing has maximum data flexibility: For example it allows for unlimited number of people per group, each person can have an unlimited number of phones or addresses, each address an unlimited number of people, etc.

Implementing it in LO: Because in LO you can’t edit a query based on more than one table (you can view it, but not edit it), like you can in Access, (and therefore you also can’t build a form with a table that can edit a query based on more than one table), in LO this is not as clean as it is in Access.

In Access it works very well and the link tables manage themselves! In LO you have to manually edit the link tables in a separate table. I’m starting to think about how I might use some macros to improve on this, but for the moment it’s bare bones.

To give you a better idea, the first form to edit Groups, which also edits the group’s addresses, people, and phones (not just those tables, but also the links to those tables) looks like this:


Group lookup pulldown (used to find a group record)  
(this is a drop down box with custom code that helps me find group records)

Group editing fields, e.g. Group name, category, url, etc

Then below that

Group-Person links table

Then to the right of that

Persons table (plural) - to create new person, then..  

And below that

Person table (singular)   
 [pointed to by Group-Person link]  
 to view person pointed to.

Group-Address links || (similar structure to above)
(for example, when a business has two or more addresses)


Group-Phone links || (similar structure to above)
(this is for phone#’s that the group owns directly, not personal phones of the group’s members, and not phones tied to specific addresses).

———-

Then there are 3 other similar forms,

one for Addresses w/ Person, Group & Phone links;

one for Phones w/ Group, Address & Person links;

and one for People w/ Group, Address and phone links;

Here is a screen shot of the first of the 4 editing forms, to edit the groups and the links associated with the group:

enter image description here

Hope this helps. I would be interested to see what you develop. Thanks.

Uiop541

Posts: 2
Joined: Wed May 25, 2016 5:18 am

Database error code -177

Working on an online school project with database and I need to finish this class ASAP and I was wondering if any of you could help me with this error message I’m getting?

Attachments
Community Service.odb
Actual File
(32.29 KiB) Downloaded 88 times
Picture of Error Message
Picture of Error Message

OpenOffice 4 on Windows 10

FJCC

Moderator
Posts: 8779
Joined: Sat Nov 08, 2008 8:08 pm
Location: Colorado, USA

Re: Help ASAP Database error code -177

Post

by FJCC » Wed May 25, 2016 5:37 am

What are the column types of Organizations.OrganizationName and VolunteerHours.OrganizationName? They should be the same type. You can check the type by going to the table pane, right clicking on the table icon and selecting Edit.

Windows 10 and Linux Mint, since 2017
If your question is answered, please go to your first post, select the Edit button, and add [Solved] to the beginning of the title.

eremmel

Posts: 1076
Joined: Tue Dec 30, 2008 1:15 am

Re: Help ASAP Database error code -177

Post

by eremmel » Wed May 25, 2016 11:49 am

There are more aspects that define a type than only the keyword ‘VARCHAR’, The type of a text field is ‘VARCHAR(N)’ with N the max expected length in characters. Now rethink your relation definition….
In theory you can only make a relation between from fields f1 to f2 that have the types VARCHAR(n1) and VARCHAR(n2) when n1 < n2, but I will not be surprised that the constrain is even more restricted to: n1 == n2.

It’s Microsoft marketing that tells you computers are qualified for non-technicians
W11 21H2 (build 22000), LO 7.4.1.2(x64)

UnklDonald418

Volunteer
Posts: 1492
Joined: Wed Jun 24, 2015 12:56 am
Location: Colorado, USA

Re: Help ASAP Database error code -177

Post

by UnklDonald418 » Wed May 25, 2016 7:22 pm

I downloaded your “Community Service.obd” in your post
In your «Organizations» table «OrganizationName» is type [VARCHAR IGNORE CASE]
In your «Volunteer Hours» table the foreign key «OrganizationName» is type [VARCHAR]. While similar they are still different types.
By the way even after changing them to matching types you may need to re-enter your data in that column of the «Volunteer Hours» table before it will work.

If your problem has been solved, please edit this topic’s initial post and add «[Solved]» to the beginning of the subject line
Apache OpenOffice 4.1.8 & LibreOffice 6.4.7.2 — Windows 10 Professional

Я знаю, что означает ошибка, и почему это происходит, а это значит, что это не дубликат многих тем, охватывающих State 23000. Я использую PDO для вставки дублирующей записи в таблицу с составной PK. Я сделал это специально, чтобы автоматически отменить вставку любых дублированных записей в эту конкретную таблицу.

Ошибка, SQLSTATE[23000]: Integrity constraint violation, убивает скрипт. Есть ли способ установить уровень предупреждения для этой конкретной ошибки, буквально сказать, что он заткнется и продолжит?

Я не понимаю цель иметь составные ПК, если мы не можем позволить им работать для нас?

Я не очень разбираюсь в администрировании БД, поэтому вам придется простить меня, если я натолкнулся немного, «это должно сработать, если я ударил его молотком».

Структура таблицы:

CREATE TABLE 'cart' (
 'id' int(11) NOT NULL AUTO_INCREMENT,
 'userid' int(10) NOT NULL,
 'itemid' int(10) NOT NULL,
 UNIQUE KEY 'id' ('id'),
 UNIQUE KEY 'unique_records' ('userid','itemid')
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1

Обратите внимание на составной ПК, называемый «уникальными записями».

поэтому у меня есть эта таблица:

| id | userid | itemid |
|  1 |    175 |     12 |

И я выполняю этот запрос:

    $insertItem = $db->query("
                              INSERT INTO cart (userid, itemid) 
                              VALUES (:userid, :itemid), 
                              array("userid"=>"175", "itemid"=>"12")
                            ");

Выполнение этого запроса вызывает эту ошибку: SQLSTATE[23000]: Integrity constraint violation.

Я полностью понимаю, почему я получаю эту ошибку — я просто не понимаю, почему она убивает мое представление? Я думал, что он должен просто продолжать работать, игнорируя тот факт, что несколько записей не были вставлены, потому что они были дубликатами?

Советы оценили!

I’m using Symfony 2 with Doctrine.

I have 4 classes: Country, District, County and Local. District has a foreign key of Country; County has a foreign of District; Local has a foreign key of District.

The problem is that when inserting a County (using data fixtures), I get the error

SQLSTATE[23000]: Integrity constraint violation:

I dumped the SQL to create the tables and constraints and got this:

CREATE TABLE Country (id INT AUTO_INCREMENT NOT NULL, 
name VARCHAR(255) NOT NULL, 
insertedAt DATETIME NOT NULL, 
flag LONGTEXT DEFAULT NULL COMMENT '(DC2Type:object)', 
PRIMARY KEY(id)) ENGINE = InnoDB;


CREATE TABLE County (id INT AUTO_INCREMENT NOT NULL, 
name VARCHAR(255) NOT NULL, 
insertedAt DATETIME NOT NULL, 
insertedBy INT NOT NULL, 
idDistrict INT NOT NULL, 
INDEX IDX_5F4EFA13438082DC (insertedBy), 
INDEX IDX_5F4EFA1362627EDC (idDistrict), 
PRIMARY KEY(id)) ENGINE = InnoDB;


CREATE TABLE District (id INT AUTO_INCREMENT NOT NULL, 
name VARCHAR(255) NOT NULL, 
insertedAt DATETIME NOT NULL, 
insertedBy INT NOT NULL, 
idCountry INT NOT NULL, 
INDEX IDX_C8B736D1438082DC (insertedBy), 
INDEX IDX_C8B736D143CAA294 (idCountry), 
PRIMARY KEY(id)) ENGINE = InnoDB;


CREATE TABLE LOCAL (id INT AUTO_INCREMENT NOT NULL, 
name VARCHAR(255) NOT NULL, 
insertedAt DATETIME NOT NULL, 
insertedBy INT NOT NULL, 
idCounty INT NOT NULL, 
INDEX IDX_4A17A7EC438082DC (insertedBy), 
INDEX IDX_4A17A7EC3BF357BF (idCounty), 
PRIMARY KEY(id)) ENGINE = InnoDB;


ALTER TABLE County ADD CONSTRAINT FK_5F4EFA13438082DC
FOREIGN KEY (insertedBy) REFERENCES Account(id);


ALTER TABLE County ADD CONSTRAINT FK_5F4EFA1362627EDC
FOREIGN KEY (idDistrict) REFERENCES District(id);


ALTER TABLE District ADD CONSTRAINT FK_C8B736D1438082DC
FOREIGN KEY (insertedBy) REFERENCES Account(id);


ALTER TABLE District ADD CONSTRAINT FK_C8B736D143CAA294
FOREIGN KEY (idCountry) REFERENCES Country(id);


ALTER TABLE LOCAL ADD CONSTRAINT FK_4A17A7EC438082DC
FOREIGN KEY (insertedBy) REFERENCES Account(id);


ALTER TABLE LOCAL ADD CONSTRAINT FK_4A17A7EC3BF357BF
FOREIGN KEY (idCounty) REFERENCES County(id);

The problem is not in the DataFixture itself because I tried to insert a County using PhpMyAdmin and got the same error.

All tables are created in InnoDB engine and I can successfully create a Country and a District. The error occurs only with the County entity.

Thanks

In the video you cite, this is kind of silly as there is no need for a many to many relationship. The author could have simply added a Movie ID field to the genre Table, (so multiple genre records can point to each movie record).

I have a complex many-to-many contacts structure that I’m in the process of porting from MS Access to LibreOffice. It has 4 primary data tables: Groups, Address, Phones, and People. And there are 6 link tables to connect those primary tables: GroupAddress, GroupPhone, GroupPerson; AddressPhone, AddressPerson; and finaly PhonePerson. Unlike the video you cite above with only 2 fields, in my link tables there are 3 fields. GroupAddress for example has GroupAddressID (the unique id for the link table itself), GroupID (which points to the Groups table), and AddressID (which points to the addresses table). This allows any number of addresses per each group, and at the same time, any number of groups per each address.

So the whole thing has maximum data flexibility: For example it allows for unlimited number of people per group, each person can have an unlimited number of phones or addresses, each address an unlimited number of people, etc.

Implementing it in LO: Because in LO you can’t edit a query based on more than one table (you can view it, but not edit it), like you can in Access, (and therefore you also can’t build a form with a table that can edit a query based on more than one table), in LO this is not as clean as it is in Access.

In Access it works very well and the link tables manage themselves! In LO you have to manually edit the link tables in a separate table. I’m starting to think about how I might use some macros to improve on this, but for the moment it’s bare bones.

To give you a better idea, the first form to edit Groups, which also edits the group’s addresses, people, and phones (not just those tables, but also the links to those tables) looks like this:


Group lookup pulldown (used to find a group record)  
(this is a drop down box with custom code that helps me find group records)

Group editing fields, e.g. Group name, category, url, etc

Then below that

Group-Person links table

Then to the right of that

Persons table (plural) - to create new person, then..  

And below that

Person table (singular)   
 [pointed to by Group-Person link]  
 to view person pointed to.

Group-Address links || (similar structure to above)
(for example, when a business has two or more addresses)


Group-Phone links || (similar structure to above)
(this is for phone#’s that the group owns directly, not personal phones of the group’s members, and not phones tied to specific addresses).

———-

Then there are 3 other similar forms,

one for Addresses w/ Person, Group & Phone links;

one for Phones w/ Group, Address & Person links;

and one for People w/ Group, Address and phone links;

Here is a screen shot of the first of the 4 editing forms, to edit the groups and the links associated with the group:

enter image description here

Hope this helps. I would be interested to see what you develop. Thanks.

В видео, которое вы цитируете, это глупо, потому что нет необходимости во многих отношениях. Автор мог бы просто добавить поле «Идентификатор фильма» в таблицу жанров (таким образом, несколько записей жанров могут указывать на каждую запись фильма).

У меня сложная структура контактов «многие ко многим», которую я перевожу из MS Access в LibreOffice. Он имеет 4 основные таблицы данных: группы, адреса, телефоны и люди. И есть 6 таблиц ссылок для подключения этих первичных таблиц: GroupAddress, GroupPhone, GroupPerson; AddressPhone, AddressPerson; и наконец PhonePerson. В отличие от видео, которое вы цитируете выше только с двумя полями, в моих таблицах ссылок есть три поля. Например, GroupAddress имеет GroupAddressID (уникальный идентификатор для самой таблицы ссылок), GroupID (который указывает на таблицу групп) и AddressID (который указывает на таблицу адресов). Это позволяет любое количество адресов для каждой группы, и в то же время, любое количество групп для каждого адреса.

Таким образом, все это имеет максимальную гибкость данных: например, оно позволяет неограниченное количество людей в группе, каждый человек может иметь неограниченное количество телефонов или адресов, каждый адрес неограниченное количество людей и т. Д.

Реализация его в LO: потому что в LO вы не можете редактировать запрос, основанный на более чем одной таблице (вы можете просматривать его, но не редактировать), как вы можете в Access (и, следовательно, вы также не можете построить форму с таблицей, которая может редактировать запрос, основанный на более чем одной таблице), в LO это не так чисто, как в Access.

В Access это работает очень хорошо, а таблицы ссылок управляются сами! В LO вы должны вручную редактировать таблицы ссылок в отдельной таблице. Я начинаю думать о том, как я мог бы использовать некоторые макросы для улучшения этого, но на данный момент это голые кости.

Чтобы дать вам лучшее представление, первая форма для редактирования групп, которая также редактирует адреса, людей и телефоны группы (не только эти таблицы, но и ссылки на эти таблицы), выглядит следующим образом:


Group lookup pulldown (used to find a group record)  
(this is a drop down box with custom code that helps me find group records)

Group editing fields, e.g. Group name, category, url, etc

Тогда ниже этого

Group-Person links table

Тогда справа от этого

Persons table (plural) - to create new person, then..  

И ниже этого

Person table (singular)   
 [pointed to by Group-Person link]  
 to view person pointed to.

Групповые адресные ссылки || (структура, аналогичная приведенной выше)
(например, когда у компании есть два или более адреса)


Групповые телефонные ссылки || (структура, аналогичная приведенной выше)
(это относится к телефонам, принадлежащим группе напрямую, а не к личным телефонам участников группы и не к телефонам, привязанным к определенным адресам).

———-

Тогда есть 3 других аналогичных форм,

один для Адреса с Персональными, Групповыми и Телефонными связями;

один для телефонов с групповой, адресной и персональной связями;

и один для людей с группой, адресом и телефонной связью;

Вот снимок экрана первой из 4 форм редактирования для редактирования групп и ссылок, связанных с группой:

Надеюсь это поможет. Мне было бы интересно посмотреть, что вы развиваете. Благодарю.

I know what the error means, and why it’s occurring, meaning this is not a duplicate of the many topics covering State 23000. I’m using PDO to insert a duplicate record into a table that has a compound PK. I did this on purpose, in order to automatically cancel the insertion of any duplicated records in to this specific table.

The error, SQLSTATE[23000]: Integrity constraint violation, is killing the script. Is there a way to set the warn level for this particular error, to literally tell it to shut up and carry on?

I don’t understand the purpose of having compound PKs if we can’t allow them to work for us?

I’m not very experienced with DB administration so you’ll have to forgive me if I come across a bit ‘it should work if I hit it with a hammer’.

Table Structure:

CREATE TABLE `cart` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `userid` int(10) NOT NULL,
 `itemid` int(10) NOT NULL,
 UNIQUE KEY `id` (`id`),
 UNIQUE KEY `unique_records` (`userid`,`itemid`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=latin1

Note the compound PK called ‘unique records’.

so I have this table:

| id | userid | itemid |
|  1 |    175 |     12 |

And I execute this query:

    $insertItem = $db->query("
                              INSERT INTO cart (userid, itemid) 
                              VALUES (:userid, :itemid), 
                              array("userid"=>"175", "itemid"=>"12")
                            ");

Executing this query prompts this error: SQLSTATE[23000]: Integrity constraint violation.

I fully understand why I’m getting this error — I just don’t understand why it’s killing my submission? I thought it should just keep working ignoring the fact that a few records weren’t inserted because they were duplicates?

Advice appreciated!

В видео, которое вы цитируете, это глупо, потому что нет необходимости во многих отношениях. Автор мог бы просто добавить поле «Идентификатор фильма» в таблицу жанров (таким образом, несколько записей жанров могут указывать на каждую запись фильма).

У меня сложная структура контактов «многие ко многим», которую я перевожу из MS Access в LibreOffice. Он имеет 4 основные таблицы данных: группы, адреса, телефоны и люди. И есть 6 таблиц ссылок для подключения этих первичных таблиц: GroupAddress, GroupPhone, GroupPerson; AddressPhone, AddressPerson; и наконец PhonePerson. В отличие от видео, которое вы цитируете выше только с двумя полями, в моих таблицах ссылок есть три поля. Например, GroupAddress имеет GroupAddressID (уникальный идентификатор для самой таблицы ссылок), GroupID (который указывает на таблицу групп) и AddressID (который указывает на таблицу адресов). Это позволяет любое количество адресов для каждой группы, и в то же время, любое количество групп для каждого адреса.

Таким образом, все это имеет максимальную гибкость данных: например, оно позволяет неограниченное количество людей в группе, каждый человек может иметь неограниченное количество телефонов или адресов, каждый адрес неограниченное количество людей и т. Д.

Реализация его в LO: потому что в LO вы не можете редактировать запрос, основанный на более чем одной таблице (вы можете просматривать его, но не редактировать), как вы можете в Access (и, следовательно, вы также не можете построить форму с таблицей, которая может редактировать запрос, основанный на более чем одной таблице), в LO это не так чисто, как в Access.

В Access это работает очень хорошо, а таблицы ссылок управляются сами! В LO вы должны вручную редактировать таблицы ссылок в отдельной таблице. Я начинаю думать о том, как я мог бы использовать некоторые макросы для улучшения этого, но на данный момент это голые кости.

Чтобы дать вам лучшее представление, первая форма для редактирования групп, которая также редактирует адреса, людей и телефоны группы (не только эти таблицы, но и ссылки на эти таблицы), выглядит следующим образом:


Group lookup pulldown (used to find a group record)  
(this is a drop down box with custom code that helps me find group records)

Group editing fields, e.g. Group name, category, url, etc

Тогда ниже этого

Group-Person links table

Тогда справа от этого

Persons table (plural) - to create new person, then..  

И ниже этого

Person table (singular)   
 [pointed to by Group-Person link]  
 to view person pointed to.

Групповые адресные ссылки || (структура, аналогичная приведенной выше)
(например, когда у компании есть два или более адреса)


Групповые телефонные ссылки || (структура, аналогичная приведенной выше)
(это относится к телефонам, принадлежащим группе напрямую, а не к личным телефонам участников группы и не к телефонам, привязанным к определенным адресам).

———-

Тогда есть 3 других аналогичных форм,

один для Адреса с Персональными, Групповыми и Телефонными связями;

один для телефонов с групповой, адресной и персональной связями;

и один для людей с группой, адресом и телефонной связью;

Вот снимок экрана первой из 4 форм редактирования для редактирования групп и ссылок, связанных с группой:

Надеюсь это поможет. Мне было бы интересно посмотреть, что вы развиваете. Благодарю.

Понравилась статья? Поделить с друзьями:
  • Состояние ошибки 0xc0000045
  • Состояние rpa ошибка системы
  • Состояние ошибки 0x0000020
  • Состояние 0xc00000e9 ошибка ввода вывода что делать
  • Состояние ошибки 0xc0000022 windows 10 как исправить