Update tabel uit berekening

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

JAVA Programmeur

Bedrijfsomschrijving Functieomschrijving We zoeken per direct enthousiaste software engineers die ons team komen versterken.We werken in DevOps teams met een sterk gevoel voor verantwoordelijkheid. Er wordt nauw samengewerkt met ons Business analyse team (BAT), met onze uitvoerende medewerkers en met de DevOps teams onderling binnen het domein. Het liefst hebben we veel en vaak interactie met onze interne en externe eindgebruikers om zo de juiste dingen te maken. We werken multidisciplinair in een dynamische omgeving. Achtergrond opdracht De Businesseenheid Examens is verantwoordelijk voor de logistiek van de staatsexamens Voortgezet (speciaal) onderwijs, Nederlands als 2e taal en schoolexamens. In het kader

Bekijk vacature »

Als PHP developer (Symfony) bijdragen aan betere z

Functie Als Medior/Senior PHP developer wordt er een mate van zelfstandigheid verwacht, maar ook dat je goed in een team kunt opereren waar kennis wordt gedeeld en er bijvoorbeeld codereviews plaatsvinden. Kwaliteit staat voorop, mede hierom werken ze bijvoorbeeld zonder echte deadlines in hun sprints. De SaaS-applicatie wordt volledig ontwikkeld in PHP en Symfony. De module bestaat uit een stuk informatie verrijking en intelligentie wat resulteert in een medische check. De logica wordt daarom in de code geïntrigeerd. Je bent onder andere bezig met complexe databases waar meer dan 80.000 medicijnen op verschillende niveaus in staan, die maandelijks worden geactualiseerd.

Bekijk vacature »

Full Stack Java ontwikkelaar

Functieomschrijving Voor de politie zijn wij op zoek naar een Full stack Java ontwikkelaar. Als ervaren full stack Java ontwikkelaar binnen de gewenste deadlines meewerken aan de totstandkoming van de gewenste werkzaamheden. Taken Upgraden van GeoServer, SOLR, Oracle Spatial database, Tomcat Migreren Oracle Spatial naar PostgreSQL/PostGIS Migreren SOLR naar ElasticSearch Geografische gegevens op het interne netwerk beschikbaar maken Doorontwikkelen en actualiseren van de geografische services Het up to date brengen van de CI/CD pipeline, samen met medewerkers die verantwoordelijk zijn voor de CI/CD tooling Aanspreekbaar op de solution architectuur en stemt die met collega's in het cluster Geo De opdracht

Bekijk vacature »

Ervaren C#.NET developer

Functieomschrijving We zijn op zoek naar een ervaren C#.NET programmeur voor een moderne werkgever in de regio Prinsenbeek. Als programmeur zal je bezig zijn met het ontwikkelen van op maat gemaakte webapplicaties voor verschillende klanten, waarbij je ervoor zorgt dat complexe processen zo goed mogelijk worden ondersteund. Je takenpakket omvat onder andere: Werken met databases en dataopslagoplossingen, implementeren van beveiligingsoplossingen en het waarborgen van de beveiliging van applicaties en gegevens, evenals het schrijven van technische documentatie en gebruikershandleidingen. Het ontwikkelen en onderhouden van C#.NET-applicaties. Bijdragen aan het ontwerp en de architectuur van softwaretoepassingen. Het schrijven van hoogwaardige en herbruikbare codes.

Bekijk vacature »

Front-End Developer

Als Front-End Developer bij Coolblue verbeter je de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Wat doe je als Front-End Developer bij Coolblue? Als Front-end Developer werk je aan de gebruiksvriendelijkheid van onze webshop voor miljoenen klanten. Je vindt het leuk om samen te werken met de UX designer om stories op te pakken. Je krijgt energie van het bedenken van creatieve oplossingen en presenteert dit graag binnen het team. Daarnaast ben je trots op je werk en verwelkomt alle feedback. Ook Front-end Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te

Bekijk vacature »

Back-end Developer

Functieomschrijving Voor een erkende werkgever in de regio van Middelburg zijn wij op zoek naar een enthousiaste PHP / Symfony Developer. Een ambitieus persoon die het gemotiveerde development team komt versterken met het realiseren van nieuwe en complexe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor professionele groei? Dit ga je doen: Je bent verantwoordelijk voor de beheer en ontwikkeling van de serviceportal in Symfony en de webshops in de tweede versie van Magento; Je houdt je bezig met het ontwikkelen van nieuwe functionaliteiten;

Bekijk vacature »

Ervaren Full-Stack PHP Developer

Functieomschrijving Gezocht! Ervaren PHP Developer! Voor een organisatie in de regio Harderwijk zoeken wij een ervaren PHP Developer die het IT team van dit bedrijf gaat versterken. We zijn op zoek naar een enthousiaste en breed georiënteerde IT-er die het innovatieve bedrijf nog een stap verder kan brengen. Voor deze functie zoeken wij iemand die communicatief goed is en die zelfstandig problemen op kan lossen. Je werkt samen met een externe ontwikkelpartij en kunt hun dus uitdagen op het geleverde werk. Het schrijven van concepten aan de AI en hardware kant valt onder je verantwoordelijkheden. Het bedrijf noemt zichzelf een

Bekijk vacature »

Full stack Javascript ontwikkelaar

Functie Benieuwd hoe jouw dag eruit ziet? Je komt binnen rond een uur of 10 en dat start je met de morning call. Dit doen we vanaf het hoofdkantoor of op het lab, ligt eraan welk project je mee bezig bent. Na de call en het verdelen van de tickets ga je met je team aan de slag. Rond een uur of 12 is er een goede lunch en ga je smiddags weer lekker door met je werk. De ene keer maak jij een game voor een groot merk om de interactie tussen product en eindgebruiker te vergroten. De andere

Bekijk vacature »

Java developer - procesoptimalisatie (Inhouse)

Functie Wat ga je doen als Java developer? Jij als back end developer hebt al enige ervaring opgedaan in jouw vakgebied. Voornamelijk het werken met Java en Spring spreekt jou aan. Jij wordt samen met je collega developers in het team verantwoordelijk voor de gehele back end van de applicatie. Hierdoor heb jij veel zelfstandigheid in je rol en zul je ook zelf beslissingen samen met de PO maken. Er wordt gewerkt volgens de SCRUM methodiek, om zo structuur te creëren in de werkzaamheden. Binnen de 2-wekelijkse sprints pak jij je taken op die samen met de PO afgestemd zijn.

Bekijk vacature »

.NET Developer

Dit ga je doen (Door)Ontwikkelen van het applicatielandschap; (Door)Ontwikkelen van microservices; Bouwen van nieuwe functionaliteiten; Verbeteringen aandragen voor het applicatielandschap; Sparren met de business. Hier ga je werken De organisatie is werkzaam in de financiële dienstverlening met meer dan 200 medewerkers en meer dan 250.000 eindgebruikers is het een van de grotere binnen haar branche. Je komt te werken in een team waarmee je verantwoordelijk bent voor het ontwikkelen en onderhouden van de financiële applicaties binnen de organisatie, denk hierbij aan het bouwen en onderhouden van portalen. Als .net developer ga jij het development team ondersteunen met de transitie naar

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je werkt mee aan de migratie naar .NET 6; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Zij zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Front-end Developer

Onze klant is sinds 2 jaar actief als adviseur en bemiddelaar in de verzekeringsmarkt. Sindsdien proberen zij deze slapende markt flink wakker te schudden. Dit willen zij doen door het bouwen van slimme vergelijkers op hun eigen website en die van partners. Het bedrijf wil continu voorop lopen, zodat consumenten eenvoudig de verzekeringen kunnen vinden die het beste bij ze past. Functieomschrijving Als Front-end Developer werk je aan vergelijkingsmodules die consumenten dagelijks gebruiken bij het vergelijken en afsluiten van verzekeringen. Je vindt het leuk om samen te werken met de product owner, bestaande modules te verbeteren en nieuwe vergelijkers "from

Bekijk vacature »

Oracle Apex developer

Bedrijfsomschrijving My client is a technology company based in Den Bosch, the Netherlands. They specialize in providing innovative software solutions to clients, and they are currently looking for an experienced Oracle Apex developer to join the IT team. Functieomschrijving As an Oracle Apex developer, you will be responsible for designing, developing, and maintaining web-based applications using Oracle Apex. You will work closely with project managers, business analysts, and other developers to ensure that clients' needs are met and that the software solutions are of the highest quality. Responsibilities: Design, develop, and maintain Oracle Apex applications. Work with project managers and

Bekijk vacature »
Jan R

Jan R

30/04/2019 09:12:46
Quote Anchor link
Hoi,

Ik probeer een tabel bij te werken zonder succes.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
update
    trn_spelers s1
        set s1.grafischevolgorde=
            (select
                FIND_IN_SET(if(s1.elo<>"",s1.elo,-s1.id), (
                SELECT GROUP_CONCAT(if(elo<>"",elo,-id)
                ORDER BY
                    if(elo<>"",elo,-id) DESC
                ) rang
                FROM trn_spelers
                where
                    id_toernooi=s1.id_toernooi)) r
            from
                trn_spelers s1
            left join
                trn_spelers s2
                on s1.id=s2.id
            where
                s1.id_toernooi=37)
where
    s1.id_toernooi=37

Ik krijg steeds de fout: #1093 - You can't specify target table 's1' for update in FROM clause.
Ook al met een join geprobeerd maar ik raak er niet uit wijs :(
s1.id_toernooi=37 word via PHP opgebouwd
velden
grafischevolgorde==>float
id==>int
id_toernooi==>int
elo varchar(5)
De if is om uniekere resultaten te hebben indien er geen elo opgegeven is.


Hoe kan ik dit oplossen?

Jan
 
PHP hulp

PHP hulp

02/05/2024 16:16:33
 
Thomas van den Heuvel

Thomas van den Heuvel

30/04/2019 16:05:47
Quote Anchor link
Bouw eenvoudigere queries en zet alles in een transactie? Aangenomen dat je een database engine hebt die dat ondersteunt (InnoDB).

Ook lijkt het alsof e.e.a. niet helemaal uitgenormaliseerd/gestructureerd is. Mogelijk kun je daar ook nog winst pakken, het ziet er nu naar uit dat data min of meer geëncodeerd staat opgeslagen in kolommen?
Gewijzigd op 30/04/2019 17:09:53 door Thomas van den Heuvel
 
Aad B

Aad B

01/05/2019 20:45:03
Quote Anchor link
Dit is het mutating table probleem: je kan tabel trn_spelers niet updaten en tegelijkertijd selecteren in de from clause uit deze trn_spelers. Dit weigert vrijwel elk RDBMS gewoon omdat de kans bestaat dat je iets update dat in de select geselecteerd is wat dan weer de selectie ongeldig kan maken.
De foutmelding is daarin heel duidelijk: You can't specify target table trn_spelers for update in FROM clause.
Ik heb voor de duidelijkheid s1 even veranderd in trn_spelers want dat is wat er bedoeld wordt.
Gewijzigd op 01/05/2019 20:57:13 door Aad B
 
Thomas van den Heuvel

Thomas van den Heuvel

01/05/2019 22:45:27
Quote Anchor link
En de enige manier om te garanderen dat de geSELECTeerde gegevens niet wijzigen (of liever gezegd, de enige manier om te garanderen dat jouw huidige batch queries de enige partij is die records kan wijzigen (write lock)) is SELECT ... FOR UPDATE binnen een transactie.
 
Jan R

Jan R

02/05/2019 06:58:17
Quote Anchor link
Thomas van den Heuvel op 30/04/2019 16:05:47:
Ook lijkt het alsof e.e.a. niet helemaal uitgenormaliseerd/gestructureerd is. Mogelijk kun je daar ook nog winst pakken, het ziet er nu naar uit dat data min of meer geëncodeerd staat opgeslagen in kolommen?


Waaruit leid je dit af?
De tabel bevat alle verplichte info van de spelers 14 kolommen en 1 kolom "opmerking". Voor 1 kolom maak ik geen extra tabel :)

@Aad B: Sommige sites schrijven een oplossing welke ik dus niet werkende kreeg.

Ik heb het probleem opgelost via javascript.
Beiden bedankt om mee te denken.
 
John D

John D

02/05/2019 10:29:49
Quote Anchor link
Thomas van den Heuvel op 01/05/2019 22:45:27:
En de enige manier om te garanderen dat de geSELECTeerde gegevens niet wijzigen (of liever gezegd, de enige manier om te garanderen dat jouw huidige batch queries de enige partij is die records kan wijzigen (write lock)) is SELECT ... FOR UPDATE binnen een transactie.

Ook dan lukt het je niet en krijg je de foutmelding: You can't specify target table for update in FROM clause. Je kan eenvoudig niet de target table ook nog eens in de FROM clause gebruiken. Ook niet in transacties. Elke SQL engine weigert dat. MySQL, Oracle, MicrosoftSQL, MariaDB maakt niet uit.
Onderstaand wordt wel een aardige oplossing geboden:http://logic.edchen.org/how-to-resolve-error-1093-hy000-you-cant-specify-target-table-xxxx-for-update-in-from-clause/
Maak een temporary table die aan het einde van de transactie automatisch wordt verwijderd.

enne "Ik heb het probleem opgelost via javascript." Hoe doe je dat? javascript draait in de browser, oplossen je data naar de client halen en dan verwerken?
Gewijzigd op 02/05/2019 11:10:39 door John D
 
Adoptive Solution

Adoptive Solution

02/05/2019 19:21:18
Quote Anchor link
Hier oplossingen die werken.

https://7php.com/mysql-update-select-statement-1093/

Solution 1 toegepast in mijn knopenwinkel middels een procedure :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE PROCEDURE `Pennies`(IN `Rekening` smallint(12), IN `Pennies` bigint(12))
UPDATE
    account p1,
    (
        SELECT
            ( sp.amount_pennies + Pennies ) AS new_pennies
        FROM
            account sp
        WHERE
            acct_num = Rekening
    ) AS p2
SET
    p1.amount_pennies = p2.new_pennies
WHERE
    acct_num = Rekening;


Die kan je dan met een CALL oproepen met een + of - waarde :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
CALL `Pennies`('137', '-50');
Gewijzigd op 02/05/2019 19:22:16 door Adoptive Solution
 
Thomas van den Heuvel

Thomas van den Heuvel

02/05/2019 19:43:30
Quote Anchor link
@John D uiteraard in twee aparte queries. Eén met een SELECT ... FOR UPDATE, en dan een UPDATE query. Beide binnen een transactie.

@Adoptive, dat werkt misschien, maar vormt dat een ondeelbaar geheel? En mogelijk hangt het atomair zijn van een query af van de database engine. Misschien gaat het toch mis in een MyISAM opstelling waarbij die procedure heel vaak parallel wordt aangeroepen? Het zijn juist die randgevallen die je wilt vermijden.

Wat mij betreft is de enige manier om te garanderen dat informatie niet verandert gedurende een wijziging de gebruikmaking van een transactie.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.