converting MySQL syntax to PostgreSQL - mysql
So I designed a Bank database in MySQL, and now I want to convert some syntax to PostgreSQL
this is my account and branch table :
CREATE TABLE `account` (
`accountnumber` int(80) NOT NULL,
`balance` text COLLATE utf8_bin NOT NULL,
`date` date NOT NULL,
`time` time NOT NULL,
`branchID` int(25) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE `branch` (
`branchID` int(25) NOT NULL,
`bName` varchar(50) COLLATE utf8_bin NOT NULL,
`bCity` varchar(50) COLLATE utf8_bin NOT NULL,
`assests` bigint(20) NOT NULL,
`mainbankID` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
I converted it already, but I have problems with these parts:
ALTER TABLE `account`
ADD PRIMARY KEY (`accountnumber`),
ADD KEY `branchID` (`branchID`);
ALTER TABLE `account`
ADD CONSTRAINT `account_ibfk_1` FOREIGN KEY (`branchID`) REFERENCES `branch` (`branchID`);
for example, I tried to write the first one like this, and I got errors:
ALTER TABLE account
ADD PRIMARY KEY (accountnumber),
ADD KEY branchID (branchID);
and I got this error :
type "branchid" does not exist
and here's my piece of code that I converted and working in PostgreSQL :
--
-- Database: `bank`
--
-- --------------------------------------------------------
--
-- Table structure for table account
--
CREATE TABLE account (
accountnumber INTEGER NOT NULL,
balance text NOT NULL,
date date NOT NULL,
time time NOT NULL,
branchID INTEGER NOT NULL
) ;
--
-- Dumping data for table `account`
--
INSERT INTO account (accountnumber, balance, date, time, branchID) VALUES
(1132, 'توضیحات ترازنامه', '2021-07-12', '00:00:03', 516),
(1792, 'توضیحات ترازنامه', '2020-05-29', '11:17:27', 516),
(5130, 'توضیحات ترازنامه', '2016-02-23', '13:18:00', 123),
(7123, 'توضیحات ترازنامه', '2011-11-16', '10:25:00', 124),
(8210, 'توضیحات ترازنامه', '2019-01-11', '16:20:06', 215);
-- --------------------------------------------------------
--
-- Table structure for table `borrower`
--
CREATE TABLE borrower (
customerID INTEGER NOT NULL,
loanID INTEGER NOT NULL
) ;
--
-- Dumping data for table `borrower`
--
INSERT INTO borrower (customerID, loanID) VALUES
(7951, 357),
(1089, 357);
-- --------------------------------------------------------
--
-- Table structure for table `branch`
--
CREATE TABLE branch (
branchID INTEGER NOT NULL,
bName varchar(50) NOT NULL,
bCity varchar(50) NOT NULL,
assests bigint NOT NULL,
mainbankID INTEGER NOT NULL
) ;
--
-- Dumping data for table `branch`
--
INSERT INTO branch (branchID, bName, bCity, assests, mainbankID) VALUES
(123, 'سعادت اباد', 'تهران', 250000000, 1111),
(124, 'تجریش', 'همدان ', 5842000, 2222),
(215, 'خیابان قیام', 'یزد', 700000000, 2222),
(391, 'نقش جهان', 'اصفهان', 20100000, 1111),
(516, 'میرداماد', 'تهران', 953200000, 1111);
-- --------------------------------------------------------
--
-- Table structure for table `customer`
--
CREATE TABLE customer (
customerID INTEGER NOT NULL,
CName varchar(78) NOT NULL,
cphonenumber INTEGER NOT NULL,
cCity varchar(50) NOT NULL,
caddress text NOT NULL,
cage INTEGER NOT NULL
) ;
--
-- Dumping data for table `customer`
--
INSERT INTO customer (customerID, CName, cphonenumber, cCity, caddress, cage) VALUES
(412, 'معین سپهری', 387496, 'تهران', 'تهران شهرک غرب', 27),
(1089, 'سحر مقدم', 3254896, 'اصفهان', 'اصفهان پل خواجوو', 32),
(7951, 'ددا رضوی', 36232323, 'تهران', 'تهران شهرک اندیشه مجتمع رز', 26),
(463241, 'محمد فلاح', 3456213, 'یزد', 'یزد خیابان کاشانی کوچه علوی', 50);
-- --------------------------------------------------------
--
-- Table structure for table `depositor`
--
CREATE TABLE depositor (
customerID INTEGER NOT NULL,
accountnumber INTEGER NOT NULL
) ;
--
-- Dumping data for table `depositor`
--
INSERT INTO depositor (customerID, accountnumber) VALUES
(7951, 7123),
(463241, 5130),
(412, 1132),
(463241, 1132),
(1089, 1132);
-- --------------------------------------------------------
--
-- Table structure for table `employee`
--
CREATE TABLE employee (
EmployeeID INTEGER NOT NULL,
Employeework varchar(100) NOT NULL,
Employeename varchar(25) NOT NULL,
aphonenumber INTEGER NOT NULL,
Employmentyear smallint NOT NULL,
eaddress text NOT NULL,
esalary INTEGER NOT NULL,
branchID INTEGER NOT NULL
) ;
--
-- Dumping data for table `employee`
--
CREATE TABLE mainbank (
mainbankID INTEGER NOT NULL,
mainname varchar(25) NOT NULL,
constructionyear smallint NOT NULL,
budget INTEGER NOT NULL
) ;
--
-- Dumping data for table `mainbank`
--
INSERT INTO mainbank (mainbankID, mainname, constructionyear, budget) VALUES
(1111, 'saderat', 1925, 20000000),
(2222, 'melli', 1912, 100000000);
-- --------------------------------------------------------
--
-- Table structure for table `managment`
--
CREATE TABLE managment (
managmentID INTEGER NOT NULL,
managename varchar(25) NOT NULL,
mphonenumber INTEGER NOT NULL,
manageaddress text NOT NULL,
manageage INTEGER NOT NULL,
manageedu varchar(100) NOT NULL,
msalary INTEGER NOT NULL,
employmentyear smallint NOT NULL,
branchID INTEGER NOT NULL
) ;
--
-- Dumping data for table `managment`
--
INSERT INTO managment (managmentID, managename, mphonenumber, manageaddress, manageage, manageedu, msalary, employmentyear, branchID) VALUES
(1030, 'akbar fallah', 2146258, 'tehran pol sadr', 59, 'Master of Banking', 2100000000, 2011, 516),
(1046, 'mohammad alavi', 352146, 'yazd blv jomhorii', 63, 'Master of Banking', 18200000, 2016, 215);
-- --------------------------------------------------------
--
-- Table structure for table `safebox`
--
CREATE TABLE safebox (
safeboxID INTEGER NOT NULL,
price INTEGER NOT NULL,
date date NOT NULL,
time time(0) NOT NULL,
branchID INTEGER NOT NULL
) ;
--
-- Dumping data for table `safebox`
--
INSERT INTO safebox (safeboxID, price, date, time, branchID) VALUES
(162, 75000000, '2020-11-07', '20:03:41', 123),
(888, 28000000, '2020-04-22', '10:00:00', 391),
(1642, 160000, '2019-01-25', '10:25:04', 215);
-- --------------------------------------------------------
--
-- Table structure for table `servise`
--
CREATE TABLE servise (
serviseID INTEGER NOT NULL,
sname varchar(25) NOT NULL,
Employmentyear smallint NOT NULL,
sage INTEGER NOT NULL,
sphone INTEGER NOT NULL,
saddress text NOT NULL,
ssalary INTEGER NOT NULL,
branchID INTEGER NOT NULL
) ;
--
-- Dumping data for table `servise`
--
INSERT INTO servise (serviseID, sname, Employmentyear, sage, sphone, saddress, ssalary, branchID) VALUES
(13333, 'iman', 1999, 49, 213620, 'tehran andishe', 30000, 516),
(15555, 'hesam', 2015, 38, 216201, 'tehran tajrish', 300000, 124);
and this is my whole code in MySQL:
-- phpMyAdmin SQL Dump
-- version 4.8.5
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Generation Time: Jan 23, 2022 at 11:37 PM
-- Server version: 10.1.38-MariaDB
-- PHP Version: 7.3.3
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET #OLD_CHARACTER_SET_CLIENT=##CHARACTER_SET_CLIENT */;
/*!40101 SET #OLD_CHARACTER_SET_RESULTS=##CHARACTER_SET_RESULTS */;
/*!40101 SET #OLD_COLLATION_CONNECTION=##COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `bank`
--
-- --------------------------------------------------------
--
-- Table structure for table `account`
--
CREATE TABLE `account` (
`accountnumber` int(80) NOT NULL,
`balance` text COLLATE utf8_bin NOT NULL,
`date` date NOT NULL,
`time` time NOT NULL,
`branchID` int(25) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `account`
--
INSERT INTO `account` (`accountnumber`, `balance`, `date`, `time`, `branchID`) VALUES
(1132, 'توضیحات ترازنامه', '2021-07-12', '00:00:03', 516),
(1792, 'توضیحات ترازنامه', '2020-05-29', '11:17:27', 516),
(5130, 'توضیحات ترازنامه', '2016-02-23', '13:18:00', 123),
(7123, 'توضیحات ترازنامه', '2011-11-16', '10:25:00', 124),
(8210, 'توضیحات ترازنامه', '2019-01-11', '16:20:06', 215);
-- --------------------------------------------------------
--
-- Table structure for table `borrower`
--
CREATE TABLE `borrower` (
`customerID` int(50) NOT NULL,
`loanID` int(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `borrower`
--
INSERT INTO `borrower` (`customerID`, `loanID`) VALUES
(7951, 357),
(1089, 357);
-- --------------------------------------------------------
--
-- Table structure for table `branch`
--
CREATE TABLE `branch` (
`branchID` int(25) NOT NULL,
`bName` varchar(50) COLLATE utf8_bin NOT NULL,
`bCity` varchar(50) COLLATE utf8_bin NOT NULL,
`assests` bigint(20) NOT NULL,
`mainbankID` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `branch`
--
INSERT INTO `branch` (`branchID`, `bName`, `bCity`, `assests`, `mainbankID`) VALUES
(123, 'سعادت اباد', 'تهران', 250000000, 1111),
(124, 'تجریش', 'همدان ', 5842000, 2222),
(215, 'خیابان قیام', 'یزد', 700000000, 2222),
(391, 'نقش جهان', 'اصفهان', 20100000, 1111),
(516, 'میرداماد', 'تهران', 953200000, 1111);
-- --------------------------------------------------------
--
-- Table structure for table `customer`
--
CREATE TABLE `customer` (
`customerID` int(50) NOT NULL,
`CName` varchar(78) COLLATE utf8_bin NOT NULL,
`cphone number` int(11) NOT NULL,
`cCity` varchar(50) COLLATE utf8_bin NOT NULL,
`caddress` text COLLATE utf8_bin NOT NULL,
`cage` int(3) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `customer`
--
INSERT INTO `customer` (`customerID`, `CName`, `cphone number`, `cCity`, `caddress`, `cage`) VALUES
(412, 'معین سپهری', 387496, 'تهران', 'تهران شهرک غرب', 27),
(1089, 'سحر مقدم', 3254896, 'اصفهان', 'اصفهان پل خواجوو', 32),
(7951, 'ددا رضوی', 36232323, 'تهران', 'تهران شهرک اندیشه مجتمع رز', 26),
(463241, 'محمد فلاح', 3456213, 'یزد', 'یزد خیابان کاشانی کوچه علوی', 50);
-- --------------------------------------------------------
--
-- Table structure for table `depositor`
--
CREATE TABLE `depositor` (
`customerID` int(50) NOT NULL,
`accountnumber` int(80) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `depositor`
--
INSERT INTO `depositor` (`customerID`, `accountnumber`) VALUES
(7951, 7123),
(463241, 5130),
(412, 1132),
(463241, 1132),
(1089, 1132);
-- --------------------------------------------------------
--
-- Table structure for table `employee`
--
CREATE TABLE `employee` (
`EmployeeID` int(10) NOT NULL,
`Employeework` varchar(100) COLLATE utf8_bin NOT NULL,
`Employeename` varchar(25) COLLATE utf8_bin NOT NULL,
`aphonenumber` int(11) NOT NULL,
`Employmentyear` year(4) NOT NULL,
`eaddress` text COLLATE utf8_bin NOT NULL,
`esalary` int(20) NOT NULL,
`branchID` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `employee`
--
INSERT INTO `employee` (`EmployeeID`, `Employeework`, `Employeename`, `aphonenumber`, `Employmentyear`, `eaddress`, `esalary`, `branchID`) VALUES
(1551, 'Official', 'ali akbari', 912512123, 1941, 'tehran andarzgoo', 1400000000, 123),
(1881, 'Official', 'nazi imanii', 91352412, 1998, 'yazd kashani', 80000000, 215);
-- --------------------------------------------------------
--
-- Table structure for table `loan`
--
CREATE TABLE `loan` (
`loanID` int(50) NOT NULL,
`amount` int(50) NOT NULL,
`branchID` int(25) NOT NULL,
`startdate` date NOT NULL,
`enddate` date NOT NULL,
`time` time NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `loan`
--
INSERT INTO `loan` (`loanID`, `amount`, `branchID`, `startdate`, `enddate`, `time`) VALUES
(357, 300000, 516, '2020-01-02', '2022-01-12', '10:00:00'),
(412, 1230000, 215, '1998-08-25', '2021-11-25', '09:00:00'),
(863, 5400000, 516, '1996-08-13', '2020-12-30', '07:14:00');
-- --------------------------------------------------------
--
-- Table structure for table `mainbank`
--
CREATE TABLE `mainbank` (
`mainbankID` int(10) NOT NULL,
`mainname` varchar(25) COLLATE utf8_bin NOT NULL,
`constructionyear` year(4) NOT NULL,
`budget` int(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `mainbank`
--
INSERT INTO `mainbank` (`mainbankID`, `mainname`, `constructionyear`, `budget`) VALUES
(1111, 'saderat', 1925, 20000000),
(2222, 'melli', 1912, 100000000);
-- --------------------------------------------------------
--
-- Table structure for table `managment`
--
CREATE TABLE `managment` (
`managmentID` int(10) NOT NULL,
`managename` varchar(25) COLLATE utf8_bin NOT NULL,
`mphonenumber` int(11) NOT NULL,
`manageaddress` text COLLATE utf8_bin NOT NULL,
`manageage` int(3) NOT NULL,
`manageedu` varchar(100) COLLATE utf8_bin NOT NULL,
`msalary` int(20) NOT NULL,
`employmentyear` year(4) NOT NULL,
`branchID` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `managment`
--
INSERT INTO `managment` (`managmentID`, `managename`, `mphonenumber`, `manageaddress`, `manageage`, `manageedu`, `msalary`, `employmentyear`, `branchID`) VALUES
(1030, 'akbar fallah', 2146258, 'tehran pol sadr', 59, 'Master of Banking', 2100000000, 2011, 516),
(1046, 'mohammad alavi', 352146, 'yazd blv jomhorii', 63, 'Master of Banking', 18200000, 2016, 215);
-- --------------------------------------------------------
--
-- Table structure for table `safebox`
--
CREATE TABLE `safebox` (
`safeboxID` int(10) NOT NULL,
`price` int(20) NOT NULL,
`date` date NOT NULL,
`time` time NOT NULL,
`branchID` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `safebox`
--
INSERT INTO `safebox` (`safeboxID`, `price`, `date`, `time`, `branchID`) VALUES
(162, 75000000, '2020-11-07', '20:03:41', 123),
(888, 28000000, '2020-04-22', '10:00:00', 391),
(1642, 160000, '2019-01-25', '10:25:04', 215);
-- --------------------------------------------------------
--
-- Table structure for table `servise`
--
CREATE TABLE `servise` (
`serviseID` int(10) NOT NULL,
`sname` varchar(25) COLLATE utf8_bin NOT NULL,
`Employmentyear` year(4) NOT NULL,
`sage` int(3) NOT NULL,
`sphone` int(11) NOT NULL,
`saddress` text COLLATE utf8_bin NOT NULL,
`ssalary` int(20) NOT NULL,
`branchID` int(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
--
-- Dumping data for table `servise`
--
INSERT INTO `servise` (`serviseID`, `sname`, `Employmentyear`, `sage`, `sphone`, `saddress`, `ssalary`, `branchID`) VALUES
(13333, 'iman', 1999, 49, 213620, 'tehran andishe', 30000, 516),
(15555, 'hesam', 2015, 38, 216201, 'tehran tajrish', 300000, 124);
--
-- Indexes for dumped tables
--
--
-- Indexes for table `account`
--
ALTER TABLE `account`
ADD PRIMARY KEY (`accountnumber`),
ADD KEY `branchID` (`branchID`);
--
-- Indexes for table `borrower`
--
ALTER TABLE `borrower`
ADD KEY `customerID` (`customerID`),
ADD KEY `loanID` (`loanID`);
--
-- Indexes for table `branch`
--
ALTER TABLE `branch`
ADD PRIMARY KEY (`branchID`);
--
-- Indexes for table `customer`
--
ALTER TABLE `customer`
ADD PRIMARY KEY (`customerID`);
--
-- Indexes for table `depositor`
--
ALTER TABLE `depositor`
ADD KEY `account number` (`accountnumber`),
ADD KEY `customerID` (`customerID`);
--
-- Indexes for table `employee`
--
ALTER TABLE `employee`
ADD PRIMARY KEY (`EmployeeID`),
ADD KEY `branchID` (`branchID`);
--
-- Indexes for table `loan`
--
ALTER TABLE `loan`
ADD PRIMARY KEY (`loanID`),
ADD KEY `branchID` (`branchID`);
--
-- Indexes for table `mainbank`
--
ALTER TABLE `mainbank`
ADD PRIMARY KEY (`mainbankID`);
--
-- Indexes for table `managment`
--
ALTER TABLE `managment`
ADD PRIMARY KEY (`managmentID`),
ADD KEY `branchID` (`branchID`);
--
-- Indexes for table `safebox`
--
ALTER TABLE `safebox`
ADD PRIMARY KEY (`safeboxID`),
ADD KEY `branchID` (`branchID`);
--
-- Indexes for table `servise`
--
ALTER TABLE `servise`
ADD PRIMARY KEY (`serviseID`),
ADD KEY `branchID` (`branchID`);
--
-- Constraints for dumped tables
--
--
-- Constraints for table `account`
--
ALTER TABLE `account`
ADD CONSTRAINT `account_ibfk_1` FOREIGN KEY (`branchID`) REFERENCES `branch` (`branchID`);
--
-- Constraints for table `borrower`
--
ALTER TABLE `borrower`
ADD CONSTRAINT `borrower_ibfk_1` FOREIGN KEY (`customerID`) REFERENCES `customer` (`customerID`),
ADD CONSTRAINT `borrower_ibfk_2` FOREIGN KEY (`loanID`) REFERENCES `loan` (`loanID`);
--
-- Constraints for table `depositor`
--
ALTER TABLE `depositor`
ADD CONSTRAINT `depositor_ibfk_1` FOREIGN KEY (`accountnumber`) REFERENCES `account` (`accountnumber`),
ADD CONSTRAINT `depositor_ibfk_2` FOREIGN KEY (`customerID`) REFERENCES `customer` (`customerID`);
--
-- Constraints for table `employee`
--
ALTER TABLE `employee`
ADD CONSTRAINT `employee_ibfk_1` FOREIGN KEY (`branchID`) REFERENCES `branch` (`branchID`);
--
-- Constraints for table `loan`
--
ALTER TABLE `loan`
ADD CONSTRAINT `loan_ibfk_1` FOREIGN KEY (`branchID`) REFERENCES `branch` (`branchID`);
--
-- Constraints for table `managment`
--
ALTER TABLE `managment`
ADD CONSTRAINT `managment_ibfk_1` FOREIGN KEY (`branchID`) REFERENCES `branch` (`branchID`);
--
-- Constraints for table `safebox`
--
ALTER TABLE `safebox`
ADD CONSTRAINT `safebox_ibfk_1` FOREIGN KEY (`branchID`) REFERENCES `branch` (`branchID`);
--
-- Constraints for table `servise`
--
ALTER TABLE `servise`
ADD CONSTRAINT `servise_ibfk_1` FOREIGN KEY (`branchID`) REFERENCES `branch` (`branchID`);
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=#OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=#OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=#OLD_COLLATION_CONNECTION */;
First, you need to replace the backticks (`) with standard conforming double quotes ("). This will also prevent branchID from getting folded to lower case.
Second, instead of ALTER TABLE ... ADD KEY (colname) you have to use ALTER TABLE ... ADD UNIQUE (colname). You need a unique constraint as target of foreign key.
You can use this software for that purpose:
https://soft-builder.com/how-to-convert-mysql-database-to-postgresql/
Related
Why delete query only delete one record
Hi I’ve got the folowing query: DELETE tickets, archive, files FROM tickets LEFT JOIN ticket_files ON ticket_files.ticket_id = tickets.ticket_id LEFT JOIN archive ON archive.document_id = ticket_files.document_id LEFT JOIN files ON files.file_id = ticket_files.file_id WHERE tickets.ticket_id = 21 When the ticket doesn’t have any record in the junction table ticket_files then the ticket is deleted correctly but if there is more than one record in the ticket_files then only one record is deleted from the tables archive and files. How can i make sure all the joined records are deleted also from archive and files? many thanks This is the database structure. As you can see the ticket with ID 1 has got two files associated in the ticket_files table but ticket with ID 2 doesn't have any files associated. -- phpMyAdmin SQL Dump -- version 5.1.0 -- https://www.phpmyadmin.net/ -- -- Host: localhost:8889 -- Generation Time: Mar 28, 2022 at 07:35 PM -- Server version: 5.7.34 -- PHP Version: 8.0.8 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; START TRANSACTION; SET time_zone = "+00:00"; -- -- Database: `test` -- -- -------------------------------------------------------- -- -- Table structure for table `archive` -- CREATE TABLE `archive` ( `document_id` int(11) NOT NULL, `document_sent_by` int(11) NOT NULL, `document_description` varchar(255) NOT NULL, `document_category` int(11) NOT NULL, `document_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1=public 0=draft', `document_featured` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0=no 1=yes', `document_note` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `archive` -- INSERT INTO `archive` (`document_id`, `document_sent_by`, `document_description`, `document_category`, `document_status`, `document_featured`, `document_note`) VALUES (23, 1, 'File one', 7, 1, 0, 'File one'), (24, 1, 'File two', 7, 1, 0, 'File two'); -- -------------------------------------------------------- -- -- Table structure for table `files` -- CREATE TABLE `files` ( `file_id` int(11) NOT NULL, `file_name` varchar(255) NOT NULL, `file_type` varchar(255) NOT NULL, `file_size` varchar(255) NOT NULL, `file_date` datetime DEFAULT CURRENT_TIMESTAMP, `file_category` int(11) NOT NULL, `file_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1=public 0=draft', `file_path` varchar(255) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `files` -- INSERT INTO `files` (`file_id`, `file_name`, `file_type`, `file_size`, `file_date`, `file_category`, `file_status`, `file_path`) VALUES (23, '1648496062', 'application/pdf', '9514', '2022-03-02 00:00:00', 7, 1, '/docs/1648496062.pdf'), (24, '1648496079', 'application/pdf', '146367', '2022-03-09 00:00:00', 7, 1, '/docs/1648496079.pdf'); -- -------------------------------------------------------- -- -- Table structure for table `tickets` -- CREATE TABLE `tickets` ( `ticket_id` int(11) NOT NULL, `ticket_sent_by` int(11) NOT NULL, `building_id` int(11) NOT NULL, `ticket_subject` varchar(255) NOT NULL, `ticket_object` text NOT NULL, `ticket_priority` tinyint(1) NOT NULL, `ticket_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1=aperto 2=lavorazione 3=chiuso', `ticket_comments` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0=no 1=yes', `ticket_visibility` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1=public 0=draft', `ticket_featured` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0=no 1=yes', `ticket_private` tinyint(1) NOT NULL DEFAULT '0' COMMENT ' 0=no 1=yes ', `ticket_open_time` datetime DEFAULT CURRENT_TIMESTAMP, `ticket_edit_time` datetime DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `tickets` -- INSERT INTO `tickets` (`ticket_id`, `ticket_sent_by`, `building_id`, `ticket_subject`, `ticket_object`, `ticket_priority`, `ticket_status`, `ticket_comments`, `ticket_visibility`, `ticket_featured`, `ticket_private`, `ticket_open_time`, `ticket_edit_time`) VALUES (1, 1, 13, 'Ticket with files', '<p>this ticket has files<br /></p>', 1, 1, 0, 1, 0, 0, '2022-03-28 20:33:59', NULL), (2, 1, 13, 'Ticket with no files', '<p>ticket with no files<br /></p>', 1, 1, 0, 1, 0, 0, '2022-03-28 20:35:02', NULL); -- -------------------------------------------------------- -- -- Table structure for table `ticket_files` -- CREATE TABLE `ticket_files` ( `ticket_id` int(11) NOT NULL, `document_id` int(11) NOT NULL, `file_id` int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `ticket_files` -- INSERT INTO `ticket_files` (`ticket_id`, `document_id`, `file_id`) VALUES (1, 23, 23), (1, 24, 24); -- -- Indexes for dumped tables -- -- -- Indexes for table `archive` -- ALTER TABLE `archive` ADD PRIMARY KEY (`document_id`); -- -- Indexes for table `files` -- ALTER TABLE `files` ADD PRIMARY KEY (`file_id`); -- -- Indexes for table `tickets` -- ALTER TABLE `tickets` ADD PRIMARY KEY (`ticket_id`); -- -- Indexes for table `ticket_files` -- ALTER TABLE `ticket_files` ADD KEY `ticket_id` (`ticket_id`), ADD KEY `document_id` (`document_id`) USING BTREE, ADD KEY `file_id` (`file_id`); -- AUTO_INCREMENT for table `archive` -- ALTER TABLE `archive` MODIFY `document_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=25; -- -- AUTO_INCREMENT for table `files` -- ALTER TABLE `files` MODIFY `file_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=25; -- -- AUTO_INCREMENT for table `tickets` -- ALTER TABLE `tickets` MODIFY `ticket_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- Constraints for table `ticket_files` -- ALTER TABLE `ticket_files` ADD CONSTRAINT `ticket_files_ibfk_1` FOREIGN KEY (`ticket_id`) REFERENCES `tickets` (`ticket_id`) ON DELETE CASCADE, ADD CONSTRAINT `ticket_files_ibfk_2` FOREIGN KEY (`document_id`) REFERENCES `archive` (`document_id`) ON DELETE CASCADE, ADD CONSTRAINT `ticket_files_ibfk_3` FOREIGN KEY (`file_id`) REFERENCES `files` (`file_id`) ON DELETE CASCADE; COMMIT;
We can add ticket_files to the list of the tables in the DELETE: select * from ticket_files; ticket_id | document_id | file_id --------: | ----------: | ------: 1 | 23 | 23 1 | 24 | 24 DELETE tickets, archive, files, ticket_files FROM tickets LEFT JOIN ticket_files ON ticket_files.ticket_id = tickets.ticket_id LEFT JOIN archive ON archive.document_id = ticket_files.document_id LEFT JOIN files ON files.file_id = ticket_files.file_id WHERE tickets.ticket_id = 1 ✓ select * from ticket_files; ticket_id | document_id | file_id --------: | ----------: | ------: db<>fiddle here
how to gather data from all the six tabels in mysql
I tried Inner join, however i m not able to figure out what is wrong i m doing. How can I query data from all the 6 tables in the blue box. The studentprofile table is what is the link between the other 5 tables in the blue region. I ran this query and this showed me all the data. select * from users, roles_assigned,studentprofile,schoolwithusers; Problem I am facing is that I need only filted data for user who are students and school name and student profile Please Help. here is my sql code. -- -- Database: `onlinemarksheets` -- -- -------------------------------------------------------- -- -- Table structure for table `exams` -- CREATE TABLE `exams` ( `id` int(11) NOT NULL, `examtye_id` int(11) DEFAULT NULL, `schooluser_id` int(11) DEFAULT NULL, `duration_to` date DEFAULT NULL, `duration_from` date DEFAULT NULL, `year` date DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `examtype` -- CREATE TABLE `examtype` ( `id` int(11) NOT NULL, `type` enum('Mid-Term','Half-yearly','Yearly') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `examtype` -- INSERT INTO `examtype` (`id`, `type`) VALUES (1, 'Mid-Term'), (2, 'Half-yearly'), (3, 'Yearly'); -- -------------------------------------------------------- -- -- Table structure for table `marks` -- CREATE TABLE `marks` ( `id` int(11) NOT NULL, `exam_id` int(11) DEFAULT NULL, `name` varchar(45) DEFAULT NULL, `marks_obtained` int(11) DEFAULT NULL, `marks_total` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -------------------------------------------------------- -- -- Table structure for table `roles` -- CREATE TABLE `roles` ( `id` int(11) NOT NULL, `type` enum('Admin','Teacher','Student') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `roles` -- INSERT INTO `roles` (`id`, `type`) VALUES (1, 'Admin'), (2, 'Teacher'), (3, 'Student'); -- -------------------------------------------------------- -- -- Table structure for table `roles_assigned` -- CREATE TABLE `roles_assigned` ( `id` int(11) NOT NULL, `role_id` int(11) DEFAULT NULL, `user_id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `roles_assigned` -- INSERT INTO `roles_assigned` (`id`, `role_id`, `user_id`) VALUES (1, 1, 1), (2, 2, 2), (3, 3, 3), (4, 3, 4), (5, 3, 5), (6, 3, 6), (7, 1, 1), (8, 2, 2), (9, 3, 3), (10, 3, 4), (11, 3, 5), (12, 3, 6); -- -------------------------------------------------------- -- -- Table structure for table `schools` -- CREATE TABLE `schools` ( `id` int(11) NOT NULL, `schoolname` varchar(45) DEFAULT NULL, `school_email` varchar(45) DEFAULT NULL, `school_phone` varchar(45) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `schools` -- INSERT INTO `schools` (`id`, `schoolname`, `school_email`, `school_phone`) VALUES (1, 'D.A.V Public school', 'info#davschool.com', '789456123'), (2, 'saraswati Public school', 'info#saraswatischool.com', '9998887774'), (3, 'S.G.R.R Public School', 'Info#sgrr.com', '54245645125'), (4, 'Sun Valley Public', 'info#sunvalley.com', '23423423424'), (5, 'Marshal Public school', 'info#marshalschool.com', '23482728347'); -- -------------------------------------------------------- -- -- Table structure for table `schoolwithusers` -- CREATE TABLE `schoolwithusers` ( `id` int(11) NOT NULL, `school_id` int(11) DEFAULT NULL, `studentprofile_id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `schoolwithusers` -- INSERT INTO `schoolwithusers` (`id`, `school_id`, `studentprofile_id`) VALUES (1, 1, 3), (2, 3, 4); -- -------------------------------------------------------- -- -- Table structure for table `studentprofile` -- CREATE TABLE `studentprofile` ( `id` int(11) NOT NULL, `user_id_fk` int(11) DEFAULT NULL, `rollno` int(11) DEFAULT NULL, `dob` date DEFAULT NULL, `attendence` int(11) DEFAULT NULL, `class` int(11) DEFAULT NULL, `section` enum('A','B') DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `studentprofile` -- INSERT INTO `studentprofile` (`id`, `user_id_fk`, `rollno`, `dob`, `attendence`, `class`, `section`) VALUES (1, 3, 22, '2022-01-21', 60, 1, 'A'), (2, 4, 21, '2012-01-04', 45, 1, 'A'), (3, 4, 1, '2012-01-04', 100, 3, 'B'), (4, 5, 30, '2007-04-26', 45, 3, 'B'), (5, 6, 2, '2022-01-19', 50, 6, 'B'); -- -------------------------------------------------------- -- -- Table structure for table `users` -- CREATE TABLE `users` ( `id` int(11) NOT NULL, `fname` varchar(45) DEFAULT NULL, `lname` varchar(45) DEFAULT NULL, `email` varchar(45) DEFAULT NULL, `password` varchar(45) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Dumping data for table `users` -- INSERT INTO `users` (`id`, `fname`, `lname`, `email`, `password`) VALUES (1, 'Shashank', 'Naithani', 'shashank8036#gmail.com', 'lol123'), (2, 'Kuldeep', 'Negi', 'negikuldeep#gmail.com', 'lop123'), (3, 'Arpit', 'Thakut', 'Aptha#gmail.com', 'arp123'), (4, 'Ankit', 'Barthwal', 'ankitbarth#gmail.com', 'ankit123'), (5, 'Mukesh', 'Thakur', 'sasdb#gmail.com', 'sha123'), (6, 'Arjun', 'Negi', 'sasdb#gmail.com', 'sha123'); -- -- Indexes for dumped tables -- -- -- Indexes for table `exams` -- ALTER TABLE `exams` ADD PRIMARY KEY (`id`), ADD KEY `examtye_id` (`examtye_id`) USING BTREE, ADD KEY `schooluser_id` (`schooluser_id`); -- -- Indexes for table `examtype` -- ALTER TABLE `examtype` ADD PRIMARY KEY (`id`); -- -- Indexes for table `marks` -- ALTER TABLE `marks` ADD PRIMARY KEY (`id`), ADD KEY `exam_id` (`exam_id`); -- -- Indexes for table `roles` -- ALTER TABLE `roles` ADD PRIMARY KEY (`id`); -- -- Indexes for table `roles_assigned` -- ALTER TABLE `roles_assigned` ADD PRIMARY KEY (`id`), ADD KEY `role_id` (`role_id`) USING BTREE, ADD KEY `user_id` (`user_id`) USING BTREE; -- -- Indexes for table `schools` -- ALTER TABLE `schools` ADD PRIMARY KEY (`id`); -- -- Indexes for table `schoolwithusers` -- ALTER TABLE `schoolwithusers` ADD PRIMARY KEY (`id`), ADD KEY `school_id` (`school_id`) USING BTREE, ADD KEY `studentprofile_id` (`studentprofile_id`); -- -- Indexes for table `studentprofile` -- ALTER TABLE `studentprofile` ADD PRIMARY KEY (`id`), ADD KEY `user_id_idx` (`user_id_fk`); -- -- Indexes for table `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `exams` -- ALTER TABLE `exams` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `examtype` -- ALTER TABLE `examtype` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- AUTO_INCREMENT for table `marks` -- ALTER TABLE `marks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `roles` -- ALTER TABLE `roles` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- AUTO_INCREMENT for table `roles_assigned` -- ALTER TABLE `roles_assigned` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13; -- -- AUTO_INCREMENT for table `schools` -- ALTER TABLE `schools` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; -- -- AUTO_INCREMENT for table `schoolwithusers` -- ALTER TABLE `schoolwithusers` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- AUTO_INCREMENT for table `studentprofile` -- ALTER TABLE `studentprofile` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6; -- -- AUTO_INCREMENT for table `users` -- ALTER TABLE `users` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; -- -- Constraints for dumped tables -- -- -- Constraints for table `exams` -- ALTER TABLE `exams` ADD CONSTRAINT `examtye_id` FOREIGN KEY (`examtye_id`) REFERENCES `examtype` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, ADD CONSTRAINT `schooluser_id` FOREIGN KEY (`schooluser_id`) REFERENCES `schoolwithusers` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; -- -- Constraints for table `marks` -- ALTER TABLE `marks` ADD CONSTRAINT `exam_id` FOREIGN KEY (`exam_id`) REFERENCES `exams` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; -- -- Constraints for table `roles_assigned` -- ALTER TABLE `roles_assigned` ADD CONSTRAINT `role_id` FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, ADD CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; -- -- Constraints for table `schoolwithusers` -- ALTER TABLE `schoolwithusers` ADD CONSTRAINT `school_id` FOREIGN KEY (`school_id`) REFERENCES `schools` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION, ADD CONSTRAINT `studentprofile_id` FOREIGN KEY (`studentprofile_id`) REFERENCES `studentprofile` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; -- -- Constraints for table `studentprofile` -- ALTER TABLE `studentprofile` ADD CONSTRAINT `user_id_fk` FOREIGN KEY (`user_id_fk`) REFERENCES `users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION; COMMIT;
You have to join each table on the primary key/foreign key. Some of the sample data is not quite correct because you have duplicate combinations of student_id and roles_id values in the roles_assigned table. Be sure to list the column names you need instead of *. select * from users INNER JOIN roles_assigned ON users.id = roles_assigned.user_id INNER JOIN roles ON roles.id = roles_assigned.role_id INNER JOIN studentprofile on studentprofile.id = users.id INNER JOIN schoolwithusers on schoolwithusers.studentprofile_id = studentprofile.id INNER JOIN schools ON schools.id = schoolwithusers.school_id WHERE roles.type = 'Student';
foreign key and mysql with hibernate
I am using Hibernate to create table in mySql database. I have two table "conge" and "employee" and I have a manytoone relationship. the "conge" table have a foreign key of the employee id. I notice that after inserting exactly two row in my table "conge" I get a foreign key problem. I have used hibernate and also the phpmyadmin to insert and I have always the same problem after inserting two row. this is my error Cannot add or update a child row: a foreign key constraint fails (concretepage.Conge, CONSTRAINT FKk1p9i6bbic92cgaad05k4smsg FOREIGN KEY (id) REFERENCES EMPLOYE (id)) Thanks, Update I have exported the database this is the sql file -- phpMyAdmin SQL Dump -- version 4.7.0 -- https://www.phpmyadmin.net/ -- -- Host: localhost -- Generation Time: Jul 06, 2017 at 11:50 AM -- Server version: 10.1.24-MariaDB -- PHP Version: 7.1.6 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET AUTOCOMMIT = 0; START TRANSACTION; SET time_zone = "+00:00"; /*!40101 SET #OLD_CHARACTER_SET_CLIENT=##CHARACTER_SET_CLIENT */; /*!40101 SET #OLD_CHARACTER_SET_RESULTS=##CHARACTER_SET_RESULTS */; /*!40101 SET #OLD_COLLATION_CONNECTION=##COLLATION_CONNECTION */; /*!40101 SET NAMES utf8mb4 */; -- -- Database: `concretepage` -- -- -------------------------------------------------------- -- -- Table structure for table `Conge` -- CREATE TABLE `Conge` ( `id` int(11) NOT NULL, `date` datetime DEFAULT CURRENT_TIMESTAMP, `dateDebut` date DEFAULT NULL, `dateFin` date DEFAULT NULL, `numero` int(11) NOT NULL, `status` varchar(255) DEFAULT NULL, `employe_id` int(11) DEFAULT NULL, `typeConge_id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `Conge` -- INSERT INTO `Conge` (`id`, `date`, `dateDebut`, `dateFin`, `numero`, `status`, `employe_id`, `typeConge_id`) VALUES (1, '2017-07-06 10:46:30', NULL, NULL, 0, NULL, NULL, NULL), (2, '2017-07-06 10:46:34', NULL, NULL, 0, NULL, NULL, NULL); -- -------------------------------------------------------- -- -- Table structure for table `EMPLOYE` -- CREATE TABLE `EMPLOYE` ( `id` int(11) NOT NULL, `nom` varchar(255) DEFAULT NULL, `post_id` int(11) DEFAULT NULL, `userInfo_login` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `EMPLOYE` -- INSERT INTO `EMPLOYE` (`id`, `nom`, `post_id`, `userInfo_login`) VALUES (1, 'foulen', NULL, 'user'), (2, 'falten', NULL, 'user'); -- -------------------------------------------------------- -- -- Table structure for table `POST` -- CREATE TABLE `POST` ( `id` int(11) NOT NULL, `code` varchar(255) DEFAULT NULL, `intituler` varchar(255) DEFAULT NULL, `employe_id` int(11) DEFAULT NULL, `id_superieur` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Table structure for table `TypeConge` -- CREATE TABLE `TypeConge` ( `id` int(11) NOT NULL, `code` int(11) NOT NULL, `intituler` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `TypeConge` -- INSERT INTO `TypeConge` (`id`, `code`, `intituler`) VALUES (1, 5757, 'Annuel'), (2, 2, 'Maladie'); -- -------------------------------------------------------- -- -- Table structure for table `users` -- CREATE TABLE `users` ( `login` varchar(255) NOT NULL, `country` varchar(255) DEFAULT NULL, `enabled` smallint(6) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `role` varchar(255) DEFAULT NULL, `employe_id` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `users` -- INSERT INTO `users` (`login`, `country`, `enabled`, `password`, `role`, `employe_id`) VALUES ('admin', NULL, 1, '$2a$10$OlJFlkoM9/nCAK1DUhcE7OvitoDHDip8GuoDt5NrSqWgV5aP7tMeC', 'ROLE_ADMIN', NULL), ('user', NULL, 1, '$2a$10$OlJFlkoM9/nCAK1DUhcE7OvitoDHDip8GuoDt5NrSqWgV5aP7tMeC', 'ROLE_USER', 1); -- -- Indexes for dumped tables -- -- -- Indexes for table `Conge` -- ALTER TABLE `Conge` ADD PRIMARY KEY (`id`), ADD KEY `FKov9s99mmo220hv4d8ppeobut` (`employe_id`), ADD KEY `FKocvumeoahniu5uvsjlwq5mvnp` (`typeConge_id`); -- -- Indexes for table `EMPLOYE` -- ALTER TABLE `EMPLOYE` ADD PRIMARY KEY (`id`), ADD KEY `FKpe9llqbqsni2xqg1vms2h716j` (`post_id`), ADD KEY `FKioxxmg7s2j18x2fo7ahnclmcd` (`userInfo_login`); -- -- Indexes for table `POST` -- ALTER TABLE `POST` ADD PRIMARY KEY (`id`), ADD KEY `FKl6st4h0ujkdiun27r7tak7t7n` (`employe_id`), ADD KEY `FK3x5ro8omrg46k9jaihue19o8q` (`id_superieur`); -- -- Indexes for table `TypeConge` -- ALTER TABLE `TypeConge` ADD PRIMARY KEY (`id`); -- -- Indexes for table `users` -- ALTER TABLE `users` ADD PRIMARY KEY (`login`), ADD KEY `FK82xfucsr861ymb3t5sp2hulo3` (`employe_id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `Conge` -- ALTER TABLE `Conge` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; -- -- AUTO_INCREMENT for table `EMPLOYE` -- ALTER TABLE `EMPLOYE` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- AUTO_INCREMENT for table `POST` -- ALTER TABLE `POST` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; -- -- AUTO_INCREMENT for table `TypeConge` -- ALTER TABLE `TypeConge` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3; -- -- Constraints for dumped tables -- -- -- Constraints for table `Conge` -- ALTER TABLE `Conge` ADD CONSTRAINT `FKk1p9i6bbic92cgaad05k4smsg` FOREIGN KEY (`id`) REFERENCES `EMPLOYE` (`id`), ADD CONSTRAINT `FKlm34pn7fv5rcolnjgjyjnuj9l` FOREIGN KEY (`id`) REFERENCES `TypeConge` (`id`), ADD CONSTRAINT `FKocvumeoahniu5uvsjlwq5mvnp` FOREIGN KEY (`typeConge_id`) REFERENCES `TypeConge` (`id`), ADD CONSTRAINT `FKov9s99mmo220hv4d8ppeobut` FOREIGN KEY (`employe_id`) REFERENCES `EMPLOYE` (`id`); -- -- Constraints for table `EMPLOYE` -- ALTER TABLE `EMPLOYE` ADD CONSTRAINT `FKioxxmg7s2j18x2fo7ahnclmcd` FOREIGN KEY (`userInfo_login`) REFERENCES `users` (`login`), ADD CONSTRAINT `FKpe9llqbqsni2xqg1vms2h716j` FOREIGN KEY (`post_id`) REFERENCES `POST` (`id`); -- -- Constraints for table `POST` -- ALTER TABLE `POST` ADD CONSTRAINT `FK3x5ro8omrg46k9jaihue19o8q` FOREIGN KEY (`id_superieur`) REFERENCES `POST` (`id`), ADD CONSTRAINT `FKl6st4h0ujkdiun27r7tak7t7n` FOREIGN KEY (`employe_id`) REFERENCES `EMPLOYE` (`id`); -- -- Constraints for table `users` -- ALTER TABLE `users` ADD CONSTRAINT `FK82xfucsr861ymb3t5sp2hulo3` FOREIGN KEY (`employe_id`) REFERENCES `EMPLOYE` (`id`); COMMIT; /*!40101 SET CHARACTER_SET_CLIENT=#OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=#OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=#OLD_COLLATION_CONNECTION */;
Because the foreign key is on column ID not employee_id ... look : FOREIGN KEY (id) REFERENCES EMPLOYE (id)) ... and you have only two rows in Employee table
#1064 SQL Syntax error
I understand this is a common and annoying problem so before I ask for an explanation I just want to say sorry. As the title says I've been getting a 1064 syntax error from my MySQL db I imported in to php myadmin running wamp and building through netbeans. I've checked out how other posts on the matter and have done reading about proper syntax but cannot see what my problem is. An explanation would be greatly appreciated as I really want to learn this and improve my skills. (if you have any questions about my code please ask) Here's my full code: SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET #OLD_CHARACTER_SET_CLIENT=##CHARACTER_SET_CLIENT */; /*!40101 SET #OLD_CHARACTER_SET_RESULTS=##CHARACTER_SET_RESULTS */; /*!40101 SET #OLD_COLLATION_CONNECTION=##COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Database: `mydb` -- CREATE DATABASE IF NOT EXISTS `mydb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; USE `mydb`; -- -------------------------------------------------------- -- -- Table structure for table `follow` -- DROP TABLE IF EXISTS `follow`; CREATE TABLE IF NOT EXISTS `follow` ( `follow_id` int(11) NOT NULL, `follow_current_user` varchar(255) NOT NULL, `follow_profile_user` varchar(255) NOT NULL, `follow_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=17 ; -- -- Dumping data for table `follow` -- INSERT INTO `follow` (`follow_id`, `follow_current_user`, `follow_profile_user`, `follow_timestamp`) VALUES (13, 'dude', 'the', '2015-10-10 03:09:58'), -- -------------------------------------------------------- -- -- Table structure for table `user` -- DROP TABLE IF EXISTS `user`; CREATE TABLE IF NOT EXISTS `user` ( `user_id` int(11) NOT NULL, `user_email` varchar(255) NOT NULL, `user_password` varchar(255) NOT NULL, `user_firstname` text NOT NULL, `user_lastname` text NOT NULL, `user_avatar` varchar(255) NOT NULL, `user_shortbio` text, `user_username` varchar(255) NOT NULL, `user_longbio` text, `user_facebook` varchar(255) DEFAULT NULL, `user_twitter` varchar(255) DEFAULT NULL, `user_linkedin` varchar(255) DEFAULT NULL, `user_stumbleupon` varchar(255) DEFAULT NULL, `user_pinterest` varchar(255) DEFAULT NULL, `user_googleplus` varchar(255) DEFAULT NULL, `user_website` varchar(255) DEFAULT NULL, `user_dob` date DEFAULT NULL, `user_profession` text, `user_gender` varchar(255) DEFAULT NULL, `user_maritialstatus` varchar(255) DEFAULT NULL, `user_address` text, `user_backgroundpicture` varchar(255) NOT NULL, `user_joindate` date NOT NULL, `user_country` varchar(255) DEFAULT NULL, `user_skype` varchar(255) DEFAULT NULL, `user_github` varchar(255) DEFAULT NULL, `user_youtube` varchar(255) DEFAULT NULL, `user_vimeo` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ; -- -- Dumping data for table `user` -- INSERT INTO `user` (`user_id`, `user_email`, `user_password`, `user_firstname`, `user_lastname`, `user_avatar`, `user_shortbio`, `user_username`, `user_longbio`, `user_facebook`, `user_twitter`, `user_linkedin`, `user_stumbleupon`, `user_pinterest`, `user_googleplus`, `user_website`, `user_dob`, `user_profession`, `user_gender`, `user_maritialstatus`, `user_address`, `user_backgroundpicture`, `user_joindate`, `user_country`, `user_skype`, `user_github`, `user_youtube`, `user_vimeo`) VALUES (1, 'me#gmail.com', '123password123', 'Forname', 'Surname', '1470024_601216136604826_1065650331_n-884862517.jpg', 'Lorem ipsum.', 'username', 'Lorem ipsum', NULL, NULL, NULL, NULL, NULL, NULL, 'mysite.com', '1987-11-11', 'Student', 'Male', NULL, 'kablah', 'untitled-90969185.jpg', '2015- 11-11', 'Country', NULL, NULL, NULL, NULL), -- -- -------------------------------------------------------- -- -- Table structure for table `view` -- DROP TABLE IF EXISTS `view`; CREATE TABLE IF NOT EXISTS `view` ( `view_id` int(11) NOT NULL, `view_profile_user` varchar(255) NOT NULL, `view_current_user` varchar(255) NOT NULL, `view_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=123 ; -- -- Dumping data for table `view` -- INSERT INTO `view` (`view_id`, `view_profile_user`, `view_current_user`, `view_timestamp`) VALUES (65, 'blub', 'rugsworth', '2015-10-18 19:30:56'), -- -- Indexes for dumped tables -- -- -- Indexes for table `follow` -- ALTER TABLE `follow` ADD PRIMARY KEY (`follow_id`); -- -- Indexes for table `user` -- ALTER TABLE `user` ADD PRIMARY KEY (`user_id`), ADD UNIQUE KEY `user_email` (`user_email`), ADD UNIQUE KEY `user_username` (`user_username`); -- -- Indexes for table `view` -- ALTER TABLE `view` ADD PRIMARY KEY (`view_id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `follow` -- ALTER TABLE `follow` MODIFY `follow_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=17; -- -- AUTO_INCREMENT for table `user` -- ALTER TABLE `user` MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=18; -- -- AUTO_INCREMENT for table `view` -- ALTER TABLE `view` MODIFY `view_id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=123; /*!40101 SET CHARACTER_SET_CLIENT=#OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=#OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=#OLD_COLLATION_CONNECTION */; And just the part of my code I think is causing the problem: -- Dumping data for table `user` -- INSERT INTO `user` (`user_id`, `user_email`, `user_password`, `user_firstname`, `user_lastname`, `user_avatar`, `user_shortbio`, `user_username`, `user_longbio`, `user_facebook`, `user_twitter`, `user_linkedin`, `user_stumbleupon`, `user_pinterest`, `user_googleplus`, `user_website`, `user_dob`, `user_profession`, `user_gender`, `user_maritialstatus`, `user_address`, `user_backgroundpicture`, `user_joindate`, `user_country`, `user_skype`, `user_github`, `user_youtube`, `user_vimeo`) VALUES (1, 'me#gmail.com', '123password123', 'Forname', 'Surname', '1470024_601216136604826_1065650331_n-884862517.jpg', 'Lorem ipsum.', 'username', 'Lorem ipsum', NULL, NULL, NULL, NULL, NULL, NULL, 'mysite.com', '1987-11-11', 'Student', 'Male', NULL, 'kablah', 'untitled-90969185.jpg', '2015- 11-11', 'Country', NULL, NULL, NULL, NULL), -- -- -------------------------------------------------------- -- -- Table structure for table `view` -- DROP TABLE IF EXISTS `view`; CREATE TABLE IF NOT EXISTS `view` ( `view_id` int(11) NOT NULL, `view_profile_user` varchar(255) NOT NULL, `view_current_user` varchar(255) NOT NULL, `view_timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=123 ; -- -- Dumping data for table `view` -- INSERT INTO `view` (`view_id`, `view_profile_user`, `view_current_user`, `view_timestamp`) VALUES (65, 'blub', 'rugsworth', '2015-10-18 19:30:56'),
You have a comma at the end of your INSERT INTO 'view' statement instead of a semicolon. Should be: INSERT INTO `view` (`view_id`, `view_profile_user`, `view_current_user`, `view_timestamp`) VALUES (65, 'blub', 'rugsworth', '2015-10-18 19:30:56'); Does that fix it up?
Vb.net error for query and database
Dim datetimepicker1 As String = Format(System.DateTime.Now, "yyyy-MM-dd HH:mm:ss") Try Dim cmd As MySqlCommand = New MySqlCommand With cmd .CommandText = "INSERT INTO tbl_product (`prod_name`,`prod_desc`, `cat_id`, `uom_id`,`uom_num`, `dept_id`, `brand_id`, `size_id`, `type_id`, `remarks`, `date`) values (#prod_name,#prod_desc,#cat_id,#uom_id,#uom_num,#dept_id,#brand_id,#size_id,#type_id,#remarks,#date)" .Connection = SQLConnection .CommandType = CommandType.Text .Parameters.AddWithValue("#prod_name", TextBox1.Text) .Parameters.AddWithValue("#prod_desc", TextBox2.Text) .Parameters.AddWithValue("#cat_id", ComboBox1.Text) .Parameters.AddWithValue("#uom_id", ComboBox2.Text) .Parameters.AddWithValue("#uom_num", TextBox3.Text) .Parameters.AddWithValue("#dept_id", ComboBox3.Text) .Parameters.AddWithValue("#brand_id", ComboBox4.Text) .Parameters.AddWithValue("#size_id", ComboBox5.Text) .Parameters.AddWithValue("#type_id", ComboBox6.Text) .Parameters.AddWithValue("#remarks", RichTextBox1.Text) .Parameters.AddWithValue("#date", datetimepicker1) .ExecuteNonQuery() End With MsgBox(" SIze Successfully added") Catch ex As Exception MsgBox(ex.Message.ToString) End Try cannot add or update child row foreign key constraint fails this is my error this is my table structure*************8 -- -- Table structure for table tbl_brand CREATE TABLE IF NOT EXISTS tbl_brand ( brand_id int(11) NOT NULL AUTO_INCREMENT, brand_name varchar(200) NOT NULL, brand_desc varchar(200) DEFAULT NULL, PRIMARY KEY (brand_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; -- -- Dumping data for table tbl_brand INSERT INTO tbl_brand (brand_id, brand_name, brand_desc) VALUES (1, 'Nike ', 'Nike Air '), (2, 'Crocs ', 'Class A '), (3, 'SafeGuard ', 'SafeGuard '); -- -- Table structure for table tbl_category CREATE TABLE IF NOT EXISTS tbl_category ( cat_id int(11) NOT NULL AUTO_INCREMENT, cat_name varchar(200) NOT NULL, cat_desc varchar(200) NOT NULL, PRIMARY KEY (cat_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Dumping data for table tbl_category INSERT INTO tbl_category (cat_id, cat_name, cat_desc) VALUES (1, 'Bath Soap ', 'Bath Soap '), (2, 'Detergent ', 'Detergent '); -- -- Table structure for table tbl_dept CREATE TABLE IF NOT EXISTS tbl_dept ( dept_id int(11) NOT NULL AUTO_INCREMENT, dept_name varchar(200) NOT NULL, dept_desc varchar(200) NOT NULL, PRIMARY KEY (dept_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Dumping data for table tbl_dept INSERT INTO tbl_dept (dept_id, dept_name, dept_desc) VALUES (1, 'Shoes ', 'Shoes '), (2, 'Soap ', 'Soap '); -- -- Table structure for table tbl_product CREATE TABLE IF NOT EXISTS tbl_product ( prod_id int(11) NOT NULL AUTO_INCREMENT, prod_name varchar(200) NOT NULL, prod_desc varchar(200) DEFAULT NULL, cat_id int(11) NOT NULL, dept_id int(11) NOT NULL, brand_id int(11) NOT NULL, type_id int(11) NOT NULL, uom_id int(11) NOT NULL, size_id int(11) NOT NULL, date datetime NOT NULL, remarks varchar(200) DEFAULT NULL, uom_num int(60) DEFAULT NULL, PRIMARY KEY (prod_id), KEY tbl_product_ibfk_9 (type_id), KEY tbl_product_ibfk_10 (uom_id), KEY tbl_product_ibfk_11 (size_id), KEY tbl_product_ibfk_12 (dept_id), KEY tbl_product_ibfk_13 (cat_id), KEY tbl_product_ibfk_14 (brand_id) ); ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Table structure for table tbl_size CREATE TABLE IF NOT EXISTS tbl_size ( size_id int(11) NOT NULL AUTO_INCREMENT, size_name varchar(100) NOT NULL, PRIMARY KEY (size_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ; -- -- Dumping data for table tbl_size INSERT INTO tbl_size (size_id, size_name) VALUES (1, 'Small(S) '), (2, 'Medium(M) '), (3, 'Large(L) '); -- -- Table structure for table tbl_type CREATE TABLE IF NOT EXISTS tbl_type ( type_id int(11) NOT NULL AUTO_INCREMENT, type_name varchar(200) NOT NULL, PRIMARY KEY (type_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ; -- -- Dumping data for table tbl_type INSERT INTO tbl_type (type_id, type_name) VALUES (1, 'BaskertBall Shoes '), (2, 'Jersey Shorts '), (3, 'running shoes '), (8, 'Bath Soap '); -- -- Table structure for table tbl_uom CREATE TABLE IF NOT EXISTS tbl_uom ( uom_id int(11) NOT NULL AUTO_INCREMENT, uom_name varchar(200) NOT NULL, PRIMARY KEY (uom_id) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; -- -- Dumping data for table tbl_uom INSERT INTO tbl_uom (uom_id, uom_name) VALUES (1, 'kilogram(kg) '), (2, 'Gram(g) '), (3, 'Milligram(Mg) '), (4, 'Liter(L) '), (5, 'Milliliters(ml) '), (6, 'Pieces(pcs) '), (7, 'foot(ft) '); -- -- Table structure for table tbl_user CREATE TABLE IF NOT EXISTS tbl_user ( user_id int(11) NOT NULL AUTO_INCREMENT, user_code varchar(200) DEFAULT NULL, user_password varchar(200) DEFAULT NULL, user_name varchar(200) DEFAULT NULL, user_level int(1) DEFAULT NULL, datetime datetime NOT NULL, com_code varchar(11) NOT NULL, PRIMARY KEY (user_id), UNIQUE KEY user_code (user_code) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ; -- -- Dumping data for table tbl_user INSERT INTO tbl_user (user_id, user_code, user_password, user_name, user_level, datetime, com_code) VALUES (1, '1024', '1024', 'Vincent Dematera', 3, '2012-01-10 18:18:33', '001'), (7, '14 ', '14', 'Megan Bueno', 1, '2012-10-30 21:56:14', '002'), (8, '13', '13', 'Anonymous', 1, '2012-10-20 21:51:00', '002'), (9, '9', '9', 'boom', 1, '0000-00-00 00:00:00', '003'); -- -- Constraints for dumped tables -- -- Constraints for table tbl_product ALTER TABLE tbl_product ADD CONSTRAINT tbl_product_ibfk_9 FOREIGN KEY (type_id) REFERENCES tbl_type (type_id), ADD CONSTRAINT tbl_product_ibfk_10 FOREIGN KEY (uom_id) REFERENCES tbl_uom (uom_id), ADD CONSTRAINT tbl_product_ibfk_11 FOREIGN KEY (size_id) REFERENCES tbl_size (size_id), ADD CONSTRAINT tbl_product_ibfk_12 FOREIGN KEY (dept_id) REFERENCES tbl_dept (dept_id), ADD CONSTRAINT tbl_product_ibfk_13 FOREIGN KEY (cat_id) REFERENCES tbl_category (cat_id), ADD CONSTRAINT tbl_product_ibfk_14 FOREIGN KEY (brand_id) REFERENCES tbl_brand (brand_id), ADD CONSTRAINT tbl_product_ibfk_2 FOREIGN KEY (type_id) REFERENCES tbl_type (type_id), ADD CONSTRAINT tbl_product_ibfk_3 FOREIGN KEY (uom_id) REFERENCES tbl_uom (uom_id), ADD CONSTRAINT tbl_product_ibfk_4 FOREIGN KEY (size_id) REFERENCES tbl_size (size_id), ADD CONSTRAINT tbl_product_ibfk_5 FOREIGN KEY (dept_id) REFERENCES tbl_dept (dept_id), ADD CONSTRAINT tbl_product_ibfk_6 FOREIGN KEY (cat_id) REFERENCES tbl_category (cat_id), ADD CONSTRAINT tbl_product_ibfk_7 FOREIGN KEY (brand_id) REFERENCES tbl_brand (brand_id); SET FOREIGN_KEY_CHECKS=1;
You have a significant number of foreign key constraints for your table product. For example, any "size_id" you enter into table products HAS to correspond to a "size_id" in table size. What your vb.net program is telling you is that one of the id values you are entering into table product does not exist in its corresponding table. My best guess would be that one of your id values (ie. size_id, uom_id, etc) is empty, blank, or zero. You have a number of options - you can: turn foreign key off for the table if you wish with SET foreign_key_checks = 0; you can remove the foreign keys altogether you can fix your code to ensure you are adhering to the foreign keys before you even attempt to insert a value